1

実際には @ManagedService パスから 2 つのパラメーターを取得したいのですが、null 値しか取得できません。コードは次のようなものです。

...
import org.atmosphere.config.service.PathParam;
import org.atmosphere.config.service.ManagedService;
import org.atmosphere.config.service.Singleton;

@Singleton
@ManagedService(path = "/chat/{myId}/{destId}")
public class Chat {

  @PathParam("myId")
  private String mittId;

  @PathParam("destId")
  private String destId;

  @Ready
  public void onReady(AtmosphereResource r) {
    logger.info("User {} want to chat with {}", mittId,destId);
  }

デバッグ中の「mittId」と「destId」は null です。コードにエラーがありますか、それとも忘れていますか? 実際、私は Atmosphere-runtime 2.3.0 を使用しています。

助けてくれる人に感謝します!

4

2 に答える 2

1

クライアントは正しいです。@Singleton アノテーションを削除することを解決します。デバッグ中に、2 つのパラメーターの値を確認できます。

于 2016-01-05T10:14:40.220 に答える
0

十分な情報を共有していないか、元のバックエンド コードを共有していないか、クライアント アプリケーションがチャット リソースを正しく呼び出していません。

あなたの例をテストしましたが、両方のパスパラメーター設定されています。multichatroom、特にクライアントの実装については、Atmosphere Github ページの例をご覧ください。

于 2016-01-05T09:53:03.070 に答える