0
静的URLにマッピングするチャットがあります。私はユーザーのための部屋を作る機会を得る必要があります。WebSocket注釈への注入変数@ServerEndpoint( "/ myVar")
注釈に変数を挿入する方法@ServerEndpoint("/myVariable")
アプリが既に実行中の場合
class SomeClass{
public void createRoom(User user) {
String name = user.getName();
//...Somehow inject name to annotation @ServerEndpoint("/name")...
}
}
@ServerEndpoint("/chat") //May be replace to @ServerEndpoint(someGetteUserName())
public class ChatEndpoint {
@OnMessage
public void message(String message, Session client)
throws IOException, EncodeException {
for (Session peer : client.getOpenSessions()) {
peer.getBasicRemote().sendText(message);
}
}
}
私はSpringを使用していません。これは、明確なwebsocketとGlassfishです。
アノテーションへのインプリメンテーション変数の注入を作成するのを手伝ってください。ありがとうございました。
は答えをいただき、ありがとうございます。私は '@ServerEndpoint("/chat "/ {client_id})の' '{{client_id}'の部分を除いてすべてのことを意味していますか?これはユーザーまたはパスの一部からの要求のparamですか?あなたは ''/chat/'{client_id}'のパスは ''/chat ''ですが、それはbreacket' {client_id} 'の構文ですか?どのようにクライアント側でこのparamを挿入し、私のChatEndpointクラスに入るのですか? – Pavel
メッセージを特定の受信者にプッシュするときに役立つIDによってクライアントセッションを特定することは、単なる提案です。たとえば、最初のセッションAは、他のセッションBに直接メッセージを送信したい(Bとのプライベートチャット)。ここで(https://stackoverflow.com/a/21572502/3834429)いくつかの便利なソースコード(フロント&バック):) –
この方法は、クライアントが彼女のIDを知っていることを主張するか? – Pavel