4
我是cometD的新手,是否有任何簡單的例子來實現服務通道模型的情況下的響應/請求模型。我見過cometd.org,但是如果我發佈到任何頻道,如何發送回覆就沒有這樣的例子。在cometD中實現
這是客戶端
alert("channel published1");
dojox.cometd.publish('/service/getlist');
alert("channel published");
dojox.cometd.subscribe('/service/getlist', function(message) {
alert(message);
});
這是服務器端的 「ConfigurationServlet」
bayeux.createIfAbsent("/service/getlist", new ConfigurableServerChannel.Initializer() {
//new EchoService(bayeux);
@Override
public void configureChannel(ConfigurableServerChannel channel) {
/*channel.setPersistent(true);
GetListChannelListener channelListner = new GetOrderListChannelListener();
channel.addListener(channelListner);*/
new EchoService(bayeux);
}
});
EchoService的
public class EchoService extends AbstractService{
public EchoService(BayeuxServer bayeuxServer)
{
super(bayeuxServer, "getlist");
addService("/service/getlist", "processEcho");
}
public void processEcho(ServerSession remote,Map<String, Object> data)
{
try{
System.out.println("Start Process Echo");
getBayeux().getChannel("/service/getlist").publish(getServerSession(), "Hello", null);
System.out.println("End Process Echo");
}catch(Exception exp){
exp.printStackTrace();
}
//remote.deliver(getServerSession(), "/service/getlist", data, null);
}
}
感謝您的評論。我現在在學習時遇到了一個問題,即假設我已經在javascript中發佈和頻道並訂閱。發佈時我正在調用一個servlet。現在我有點在這裏混淆如何發送一個味精回到客戶端(JavaScript)從servlet。我看過一個例子,但我沒有理解這裏的觀點。 –
請更新您的問題,添加您到目前爲止寫的代碼 – perissf
perissf我已更新我的問題。請看一看。 Thnx –