ロングポーリングネッティーNIOフレームワークのJava
-
21-09-2019 - |
質問
どのように私はネッティーのフレームワークを使用したロングポーリングを行うことができますか?例えば私はhttp://localhost/waitforx
しかしwaitforx
は、イベントを待つ必要があるため、非同期のですか?セイ例えばそれは、ブロッキングキューから何かを取り出す(とき、キュー内のデータのみ取り出すことができます)。キューからアイテムを取得するとき、私はクライアントに送信されたデータをバックにしたいと思います。うまくいけば、誰かがこれを行う方法を私にいくつかのヒントを与えることができます。
多くの感謝
解決
は、最初の応答ヘッダを書き込み、その後、他のスレッドから後本体(コンテンツ)を送信することができます。
void messageReceived(...) {
HttpResponse res = new DefaultHttpResponse(...);
res.setHeader(...);
...
channel.write(res);
}
// In a different thread..
ChannelBuffer partialContent = ...;
channel.write(partialContent);
他のヒント
あなたはネッティー-socketio のプロジェクトを使用することができます。それは長いポーリングをサポートした Socket.IO のサーバーの実装です。ウェブ側では、あなたは Socket.IOクライアントにはJavaScriptのlibます。
を使用することができますまた、[sfnrpc]で次の操作を行うことができます: http://code.google.com/p / sfnrpcする
Object object = RPCClient.getInstance().invoke("#URN1","127.0.0.1:6878","echo",true,60,"", objArr,classArr, sl);
真の原因通信が同期されるように
所属していません StackOverflow