Я использую библиотеку hotcat libwebsocket C для небольшого сервера websocket. У меня есть примеры вверх и работаю и могу отправлять данные в ответ на прием данных из websocket (например, эхо отзыва назад обращенных байтов). Тем не менее, я не смог понять, как отправлять данные асинхронно с сервера, не будучи уже в функции обратного вызова libwebsocket. Мне нужен указатель wsi для перехода к libwebsocket_write(), но не вижу, как получить указатель, кроме как в обратном вызове.
Я читал, что libwebsocket не является потокобезопасным, поскольку мой собственный опыт, похоже, подтверждает.
В libwebsockets.c: line2483 я читал, что "функции обратного вызова протокола [...] вызываются периодически, чтобы разрешить передачу async". Это именно то, чего я хочу, но я не наблюдал этого в своем собственном коде и не нашел способ "включить его".
Предложения о том, как писать асинхронно на websocket, который я обслуживаю?
Код для libwebsocket: http://git.warmcat.com/cgi-bin/cgit/libwebsockets/
Пример использования: http://martinsikora.com/libwebsockets-simple-websocket-server