私は、小さなwebsocketサーバ用のwarmcatのlibwebsocket Cライブラリを使用しています。私はサンプルを作成し、作業しており、websocketからデータを受け取ったことに応答してデータを送信することができます(逆のバイトを返送するなど)。しかし、libwebsocketコールバック関数を使用していなくても、サーバーから非同期にデータを送信する方法を理解することはできませんでした。私はlibwbsocket_write()に渡すwsiポインタが必要ですが、コールバック中にポインタを取得する方法を見ていません。libwebsocket経由で非同期データを送信するにはどうすればよいですか?
私はlibwebsocketがスレッドセーフではないことを読んだことがあります。自分の経験で確認したようです。
libwebsockets.c:line2483では、「プロトコルコールバック関数は、非同期送信を許可するために定期的に呼び出されます。これはまさに私が欲しいものですが、私は自分自身のコードでこれが起こっているのを見たことがなく、 "それを有効にする"方法が見つかりませんでした。
WebSocketに非同期で書き込む方法に関する提案私は奉仕していますか? libwebsocketため
コード:使用のhttp://git.warmcat.com/cgi-bin/cgit/libwebsockets/
例:http://martinsikora.com/libwebsockets-simple-websocket-server
サーバの代わりにC WebSocketクライアントを書く人にとっては、 'LWS_CALLBACK_SCLOCK_WRITEABLE'の代わりに' LWS_CALLBACK_CLIENT_WRITEABLE'イベントが呼び出されます。 – JasonCG