用activemq ajax和JQuery做了个实时聊天功能,但是接受消息方如果刷新当前页面,发送方的消息就会遗漏

沵湜莪哋哋 2016-02-28 03:42:11
我仔细试了几次,接收方如果刷新一次,发送方要发送2次,接收方才能收到,接收方再刷新一次,发送方要发送3次才行,但是过一会儿时间就恢复正常了。要怎么样解决这个问题,希望能提供具体的代码示例参考
...全文
362 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
guangjuner 2017-10-20
  • 打赏
  • 举报
回复
原因找到了,其实通过看activemq的管理界面就能知道,实质上每次刷新页面就会多出一个myId和myDestination相同的消费者,这就意味着每次刷新页面都会新添加一个监听(amq.addLinstener()代码就会执行一次),要解决这个问题就要搞清除添加监听器和销毁监听器(amq.removeListener())的时机。 测试的时候可以试试这个:

            //页面刷新或关闭时移除监听
			$(window).unload(function(){
				amq.removeListener(myId, myDestination);
			});
不过建议在项目中根据需求来创建和销毁监听器。
山叶溪 2017-05-23
  • 打赏
  • 举报
回复
楼主解决了吗,我也遇到此问题,你有解决法方法吗?

81,092

社区成员

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

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