господа а кто-то юзает https://github.com/gorilla/websocket ? сколько коннектов выдерживает при активном общении клиентов между собой ? у меня на 2к коннектах которые раз в 10 секунд шлют сообщение которое потом рестранслируется остальным проц уходит в 99% нагрузки,pprof говорит что основная нагрузка идет на syscall.Syscall
господа а кто-то юзает https://github.com/gorilla/websocket ? сколько коннектов выдерживает при активном общении клиентов между собой ? у меня на 2к коннектах которые раз в 10 секунд шлют сообщение которое потом рестранслируется остальным проц уходит в 99% нагрузки,pprof говорит что основная нагрузка идет на syscall.Syscall
Это много. Надо агрегировать сообщения, слать пачками
сообщения пишутся в канал горутины на отправку каждому клиента как только приходит сообщение то горутина выгребает все что есть в канале и высылает одной пачкой
можно встать select-ом на 2 канала: с сообщениями и с time.After при получении сообщения из 1-го append-ить его в слайс (и если там >N элементов, отправлять их), при срабатывании time.After просто отправлять все сообщения