非常に単純な cometD アプリを作成しようとしています。主にチャネルを動的に作成したい。最初に localsession チャネルを試し、作成後、クライアント側の JavaScript を介してサブスクライブしました。完璧に機能しますが、動的チャネルの作成には適していません. javascriptを介してrom変数を渡すROOM: 'firstroom'
と、次のようなチャネルが作成されます"/members/firstroom".
しかし、ROOM のような別のユーザーからの別の呼び出しでは: 'anotherroom' 別の部屋を作成しますが、古い部屋を破壊します。
簡単に言えば、動的に作成されたすべてのチャンネルをメモリに保存したいのです。私が試したクライアントセッション:
ClientSessionChannel channel = _session.getLocalSession().getChannel('/members/'+room);
channel.publish(members);
次に、次のようにサーバーで作成してサブスクライブしようとしました:
ServerChannel channel = _bayeux.getChannel("/member"+room);
LocalSession localSession = _session.getLocalSession();
channel.subscribe(client);
ServerMessage.Mutable forward = _bayeux.newMessage();
forward.setData(_members);
channel.publish(localSession, forward);
しかし、サーバー側のサブスクリプションがクライアント側のhtmlコードをどのように変更するかを考えています。どうやって
channel.publish(localSession, forward);
交換します
$.cometd.subscribe('/members', manage_members);
manage_members はサーバー側のサブスクリプションに含まれます。
簡単にチャネルを動的に作成して保存する方法は?