使用Apollo 的订阅/发布 在 WebSockets 上轻松实现web页消息推送

最近要用到实时消息推送到web页面,从ajax轮询,长链接,到第三方的workman的webMsgSender都试了试。考虑到我们系统用到了apache apollo来进行消息的处理。而且apollo也支持websocket通讯,所以开始研了下,并测试运用成功!

开始之前,先了解下apollo的用户及安全策略

Authorization

因为要在前端使用用户名和密码,所以必须要做好安全策略。


1
2
3
4
5
6
<broker>
 <access_rule allow="admins" action="*"/>
 <access_rule allow="users" action="connect,receive"/>
 <access_rule allow="*" action="connect" kind="connector"/>
</broker>
这里面增加规则设置users组,当然前提是在users.properties和groups.properties里增加了组users和用户user,并给予action只connect,receive.

Continue reading

在网站上使用web-msg-sender进行实时消息推送

WEB消息推送

web-msg-sender是一款web长连接推送框架,采用PHPSocket.IO开发,基于WebSocket长连接通讯,如果浏览器不支持WebSocket则自动转用comet推送。 通过后台推送消息,消息可以即时推送到客户端,非轮询,实时性非常好,性能很高。

特点:

  • 多浏览器支持
  • 支持针对单个用户推送消息
  • 支持向所有用户推送消息
  • 长连接推送(websocket或者comet),消息即时到达
  • 支持在线用户数实时统计展示
  • 支持在线页面数实时统计展示
  • 支持跨域推送

Continue reading