Tôi đang sử dụng thư viện libwebsocket C của warmcat cho một máy chủ websocket nhỏ. Tôi có các ví dụ lên và làm việc và có thể gửi dữ liệu để đáp ứng với việc nhận dữ liệu từ websocket (chẳng hạn như lặp lại các byte đã đảo ngược được gửi). Tuy nhiên, tôi đã không thể tìm ra cách gửi dữ liệu không đồng bộ từ máy chủ mà không có trong chức năng gọi lại libwebsocket. Tôi cần con trỏ wsi để vượt qua để libwebsocket_write() nhưng không thấy làm thế nào để có được con trỏ ngoại trừ trong khi trong callback.Làm cách nào để gửi dữ liệu không đồng bộ qua libwebsocket?
Tôi đã đọc rằng libwebsocket không phải là chủ đề an toàn, vì trải nghiệm của riêng tôi dường như đã xác nhận.
Trong libwebsockets.c: line2483, tôi đọc rằng "Các hàm gọi lại giao thức được [...] được gọi định kỳ để cho phép truyền không đồng bộ." Đây là chính xác những gì tôi muốn nhưng tôi đã không quan sát thấy điều này xảy ra trong mã của riêng tôi và đã không tìm thấy bất kỳ cách nào để "biến nó trên".
Gợi ý về cách viết không đồng bộ với websocket tôi đang phân phối?
Mã cho libwebsocket: http://git.warmcat.com/cgi-bin/cgit/libwebsockets/
Ví dụ về sử dụng: http://martinsikora.com/libwebsockets-simple-websocket-server
Ngoài ra đối với bất kỳ ai viết máy khách C WebSocket thay vì máy chủ, sự kiện 'LWS_CALLBACK_CLIENT_WRITEABLE' được gọi thay vì' LWS_CALLBACK_SERVER_WRITEABLE'. – JasonCG