gpt4 book ai didi

java - cometD 中的实现

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:37 24 4
gpt4 key购买 nike

我是 CometD 的新手,在响应/请求模型的情况下,是否有任何简单的示例来实现服务 channel 模型。我看过 cometd.org,但没有这样的例子说明如果我发布到任何 channel 如何发回响应。

这是客户端

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);
}
});

回声服务

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);
}

最佳答案

关于 http://cometd.org这里有您需要的一切。

为了构建一个非常简单的示例(带有 Javascript 客户端的 Web 应用程序),您需要特别阅读:

  • > This对于客户端
  • > This对于服务器端(配置)
  • > This对于服务器端(代码)。从这个菜单开始,您可能希望使用第一个和第三个要点:用于响应输入消息的代码的继承服务,以及用于通过配置 servlet 设置 Bayeux 服务器的服务器服务集成。

在我链接的页面中有所有必要的代码,只需复制并粘贴即可。以防万一,带着更具体的问题回来。


已编辑

查看您的代码后,我发现对于服务配置,您需要从 here 复制 ConfigurationServlet 类的代码。对于 EchoService 类,您需要修改 processEcho 方法,如下所示:

remote.deliver(getServerSession(), "/echo", data, null);

data 是一个定义为 HashMap 的 here (第一个例子)。

在客户端,我会在发布您的请求之前订阅该 channel (我也不确定它是否适合您)

关于java - cometD 中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8478130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com