ここから例を挙げて Websocket 接続を実装しようとしています - https://gist.github.com/chitan/3063774。これはエコーサーバーです。私の質問は、特定のユーザーからメッセージを受け取り、同じユーザーにエコーするのではなく、別のユーザーに送信するにはどうすればよいですか。私はたくさん検索しましたが、見つかった例のほとんどは Echo の例です。
2 に答える
1
Java EE7 では、それを簡単に行うことができます。簡単な例を考えてみてください。client.getBasicRemote().sendObject(message);
アノテーション付きのメソッドを記述すると、@OnMessage
アクティブなクライアント セッションのみが使用可能になります。
@ServerEndpoint("/websocket")
public class ChatEndpoint {
@OnMessage
public void message(String message, Session client) throws IOException, EncodeException {
client.getBasicRemote().sendObject(message);
}
}
client.getOpenSessions() でメッセージをループすると、すべてのクライアントが利用できるようになります。
@OnMessage
public void message(String message, Session client) throws IOException, EncodeException {
for (Session peer : client.getOpenSessions()) {
peer.getBasicRemote().sendObject(message);
}
}
詳細については、このチュートリアルを参照してください。
于 2013-09-25T10:57:46.770 に答える
0
それでも Java 6 を使用する必要があり、WebSocketServlet
次のようなことができる場合:
public class WsChatServlet extends WebSocketServlet{
public StreamInbound createWebSocketInbound(String protocol){
MyMessageInbound ms = new MyMessageInbound();
// store ms somewhere and than find it and use getWsOutbound() to respond
return ms;
}
...
}
于 2015-06-17T12:56:12.257 に答える