Używam biblioteki libwebsocket C warmcat dla małego serwera sieci Web. Mam przykłady i działa i mogę wysyłać dane w odpowiedzi na odbieranie danych z websocket (takich jak echo powrotem zwróconych bajtów wysłanych). Jednak nie byłem w stanie dowiedzieć się, jak przesłać dane asynchronicznie z serwera, nie będąc już w funkcji wywołania zwrotnego libwebsocket. Potrzebuję wskaźnik wsi przejść do libwebsocket_write(), ale nie widzę, jak uzyskać wskaźnik, z wyjątkiem podczas wywołania zwrotnego.Jak wysłać dane asynchroniczne przez libwebsocket?
Przeczytałem, że libwebocket nie jest bezpieczny dla wątków, jak moje własne doświadczenie zdaje się potwierdzać.
W libwebsockets.c: line2483, czytałem, że "Funkcje wywołania zwrotnego protokołu są [...] okresowo wywoływane, aby umożliwić transmisję asynchroniczną." Dokładnie tego chcę, ale nie zaobserwowałem tego w moim własnym kodzie i nie znalazłem żadnego sposobu, aby go "włączyć".
Sugestie, jak pisać asynchronicznie do websocket, który obsługuję?
Kod libwebsocket: http://git.warmcat.com/cgi-bin/cgit/libwebsockets/
Przykład zastosowania: http://martinsikora.com/libwebsockets-simple-websocket-server
Również dla każdego, kto pisze klienta C WebSocket zamiast serwera, wywoływane jest zdarzenie 'LWS_CALLBACK_CLIENT_WRITEABLE' zamiast' LWS_CALLBACK_SERVER_WRITEABLE'. – JasonCG