流星电

@taowei

流星电 no introduction.

All Personal Contributions
Forks Pause/Closed

    流星电/springcloudconfig

    springcloudconfig配置中心学习

    流星电/websocketcluster

    webSocket集群功能简单实现 在tomcat集群环境下,客户端只能与一个tomcat建立websocket连接,如果服务器向客户端发消息,则不知道哪个tomcat与此客户端建立的连接. 如果是http的会话信息可以通过缓存共享(如用Redis存会话信息), 但是webSocket的连接是不可以序列化的,也就没法共享. 所以解决问题的思路是: 当一个客户端与tomcat建立websocket连接, 则把此连接信息与相应的sessionid或用户id形成键值对放在本机内存的map中. 在集群环境下还要引入消息队列的概念, 可以用订阅/发布的模式,可以采用自己熟悉的消息框架, 此项目中采用了hazelcast的消息队列(简单,不需要额外启服务), tomcat启动时自动启动消息监听(代码中已实现), 当服务端向某个客户端通信时, 先在集群的tomcat上发布消息, 此消息包含sessionid及向客户通信的内容, 当订阅了消息的tomcat收到消息后, 检查本机的map中是否包含此sessionid, 如果不包含则忽略,如果包含则取出此sessionid对应的连接,然后向客户端发送

Search