当前位置: 首页 > 工具软件 > icomet > 使用案例 >

icomet不能挂起的问题

章永安
2023-12-01

公司服务器要迁机房,运维在配置icomet服务时问我安装哪个版本的,我直接回复说安装https://github.com/ideawu/icomet这上最新版的即可,其实和旧机房服务器上的版本号一样,都是0.2.3,但目前从https://github.com/ideawu/icomet上安装的包已经发生了变化,即如果还按原先上面的说明:

curl -v "http://127.0.0.1:8100/sub?cname=12"
# open another terminal
curl -v "http://127.0.0.1:8000/push?cname=12&content=hi"

curl -v "http://127.0.0.1:8100/sub?cname=12"
这条命令根本挂不起来,结果立即返回了,返回的串为:{"type":"next_seq","cname":"12","seq":1,"content":""}

而原先相同版本的,能正常挂起,到时间后返回的串为:{"type":"noop","cname":"12","seq":0,"content":""}


同一版本号不同时间下载的所实现的效果不一样,开始也误导了我,以为是哪块安装配置有问题,测试了半天,最后找到了原先下载的安装包再在新机器上安装配置后发现能挂起。

最终问icomet的作者ideawu,他的回复是:“next_seq是新版增加的数据类型,客户端接收到这种类型的消息后,要把这个seq加到url参数里再传给icomet”。

但由于一开始我的设计是只用PHP调用icomet的挂起功能及有消息后PHP再调用icomet立即结束挂起功能来保证APP端实时接收到消息。所以如果没有挂起功能,则APP端会一直不间断的轮询,耗电和耗流量不说,服务端也扛不了这个请求频次。

目前ideawu已经把https://github.com/ideawu/icomet上的说明给修改了,按照最新的说明调用即可。

curl -v "http://127.0.0.1:8100/sub?cname=12&seq=1"

最后不得不说icomet的性能确实不一般,而且资源占用率几乎可以忽略不计,在我们的“得脉APP”和“机遇APP”产品上已经验证了将近两年了,很稳定,也很高效!icomet是一个不错的解决app端与服务端IM通信comet方案中的一个佼佼者。

 类似资料: