Multigame: замыкание же, в чем проблема? на примере echo
app.GET("/test", func(ctx echo.Context) error { // "подписка" в main пакете
// handlerFromAnotherPackage это хэндлер из другого пакета, там просто добавить параметр канала, main_ch инициализированный в main и который передается в хэндлер вторым параметром,
return handlerFromAnotherPackage(ctx, main_ch)
})
n3uro: 2-3 дня. После первой замены где-то через месяц более-менее активного использования стало опять отслаиваться, заменили второй раз уже за 1 день. В сервисе дают гарантию 3 мес - приходится теперь каждые 3 месяца ходить менять. Говорят на 12 дюймовых тоже стали приходить с такими проблемами. Последние версии Pro ещё случаев не было.
ikerya: тогда сделать обертку над элементом, к ней повесить mousedown, и подписаться на событие начав захват
wrapperElement.addEventListener( 'click', function ( ev ) {
ev.stopImmediatePropagation();
ev.stopPropagation();
}
},true);
silverjoe: да, на твоей модели всё ок должно быть, эта проблема всех ретин (там покрытие такое фиолетовое), оно присутствует на 12ках, на прошках и в любой модели оно со временем по причине соприкосновения с клавой начинает слезать (многие не парятся и ничего не делают, можно заменить по гарантии, можно его смыть и будет обычное стекло-тогда ретина нафиг не нужна)
прошка 15 года - 13 дюймов: мучения с дисплеем ретина - облазит антиблик на местах соприкосновения с клавой, уже 2 раза меняли по гарантии, видимо будут 3й и так далее
хотя оно того стоит
Александр Марченко: неполноценная гидрация у юниверсал, только пока результаты запросов может, стор не умеет, мы уже писали в ишьюс разрабам по поводу неправильной схемы взятой от вью (https://vuejs.org/images/hn-architecture.png) , они признали что это так.
надо ещё написать что сообщения в ws называются фреймами и об их ограничениях, потому что посылая сообщение можно получить 1 и более фреймов и это всплывает на принимающей стороне, особенно в стандартном пакете go net/http
vetsmen: тогда ещё проще: хранишь ключ-значение. Ключ-логин пользователя, значение-объект хранящий флаг авторизации и кол-во сокетных соединений. При дисконнекте: уменьшаешь кол-во на 1, если кол-во сокетных соединений 0, то убираешь пользователя из словаря, если нет, то выставляешь флаг в актуальное значение. При каждой операции проверяешь словарь и флаг авторизации для пользователя.
vetsmen: тебе нужно хранить словарь, где ключ - это логин, а значения - это список указателей на открытые сокеты, как только один из сокетов инициирует логаут, ты пробегаешь по списку и логаутишь все соединения.
Владимир Грабко: ты начни в БД писать асинхронно и нагрузка спадёт, асинхронно в данном случае означает, что в течение 2-3 секунд копишь сообщения в кэше, далее сбрасываешь в БД. При обращении клиента, если он находит диалог в кэше в базу лезть не нужно
app.GET("/test", func(ctx echo.Context) error { // "подписка" в main пакете
// handlerFromAnotherPackage это хэндлер из другого пакета, там просто добавить параметр канала, main_ch инициализированный в main и который передается в хэндлер вторым параметром,
return handlerFromAnotherPackage(ctx, main_ch)
})