【已解决】pushlet 多播 打开多个相同的页面进行消息的接受为什么不是每个页面都一样呢?

tianshi1017 2017-08-26 05:01:29
如题。
后台pushlet一个广播的,前台有一个a.jsp接收。当在浏览器中打开a.jsp的时候可正常接收后台广播出来的消息。
重点来了:
然后再打开一个a.jsp页面
继续打开一个a.jsp页面
。。。。
总之就是打开多个a.jsp页面(2~N个),理论上期望的是打开的这N个a.jsp页面在同一时间显示的后台的推送消息都是相同的,
但是,实际上不相同,(表现的状态是: 只要有一个a.jsp页面的消息更新为最新的后,发现其他的几个都是旧的)。如下内容:
某个a.jsp:
pushletCpu!:740
pushletIp!Sat Aug 26 16:51:00 CST 2017:800

另外一个a.jsp:
pushletCpu!:810
pushletIp!Sat Aug 26 16:52:00 CST 2017:810

再另外一个a.jsp
pushletCpu!:820
pushletIp!Sat Aug 26 16:48:00 CST 2017:770

最新的内容正确的应该是
pushletCpu!:820
pushletIp!Sat Aug 26 16:52:00 CST 2017:810
仔细的观察,发现这三个a.jsp页面显示的都不是完全正确的内容,这是为什么呢?
不应该是三个a.jsp页面都是显示的一样的,其和正确内容一致的么?
请大家帮忙分析一下。
下面贴上主要代码:

countIp+=10;
System.out.println("===========pushletIpIp执行了=================="+new Date());
Event event = Event.createDataEvent("/pushletIp");
event.setField("pushletIp", "pushletIp!"+new Date()+":"+countIp);
Dispatcher.getInstance().broadcast(event);


	System.out.println("pushletCpu执行了=================="+new Date());
count+=10;
Event event = Event.createDataEvent("/pushletCpu");
event.setField("pushletCpu", "pushletCpu!"+":"+count);
Dispatcher.getInstance().broadcast(event);


页面:

PL._init();

PL.joinListen('/pushletCpu');
PL.joinListen('/pushletIp');


function onData(event) {

var pushletCpu = event.get('pushletCpu');
$("#cpu").html(pushletCpu);

var pushletIp = event.get('pushletIp');
$("#ip").html(pushletIp);



}
...全文
243 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianshi1017 2017-08-28
  • 打赏
  • 举报
回复
顶起来,,免得沉底了。
李德胜1995 2017-08-28
  • 打赏
  • 举报
回复
pushlet是comet长连接服务器推送技术的一个框架吧?没用过。。。怎么不用webSocket呢???
tianshi1017 2017-08-28
  • 打赏
  • 举报
回复
自己解决了。设置了一个随机变量,只要打开一个页签,则随机生产一个userId,这样属于这个页面的广播信息就不会被别人取走。 var userId = Math.random().toString(36).substr(2); PL.userId= userId; PL._init();

81,116

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧