0

ここから例を挙げて Websocket 接続を実装しようとしています - https://gist.github.com/chitan/3063774。これはエコーサーバーです。私の質問は、特定のユーザーからメッセージを受け取り、同じユーザーにエコーするのではなく、別のユーザーに送信するにはどうすればよいですか。私はたくさん検索しましたが、見つかった例のほとんどは Echo の例です。

4

2 に答える 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 に答える