CometD技术通过Http长轮询(或websocket长链接)方式在服务器与客户端之间构建了一条交互的链路。它们都遵守Bayeux协议,交换的消息是Bayeux message,消息格式是JSON。
1、需求说明
当用户登录后,后台根据用户订阅把最新的信息反推给web客户端,展示在页面上。CometD服务器实现的具体思路如下:当网页客户端登陆后,服务器创建自定义通道(group/user), 然后接收网页客户端的订阅,当后台有数据更新时,后台服务器对数据进行分析,发送给指定的用户。相关示意图如下:
2、CometD实现
2.1、服务端service创建
CometD服务器继承服务实现自org.Cometd.server.AbstractService。对应的JAVA服务器代码如下:
public class BayeuxService extends AbstractService {
//创建固定的channel
public BayeuxService(BayeuxServer bayeux) {
super(bayeux, "co