websocket长连接+redis消息订阅和发布

1、普通的消息订阅和推送,比较简单,对于订阅人员来说只订阅了一个频道,大概流程图如下:

websocket长连接+redis消息订阅和发布_第1张图片

2、复杂一点的就是:一个订阅人员可以订阅不同的频道,也就是频道可以切换,流程图如下:

websocket长连接+redis消息订阅和发布_第2张图片

3、笔者用web工程大概实现了一下:

废话不多说,直接上代码:点击下载

注意事项:websocket的访问url格式:ws:8080/servername

这种urlpattern,很可能被web.xml配置的过滤器或者拦截器拦截下来,笔者在搭建的过程中添加:

<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.cssurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.swfurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.gifurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.jpgurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.pngurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.jsurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.htmlurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.xmlurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.jsonurl-pattern>
servlet-mapping>
<servlet-mapping>
  <servlet-name>defaultservlet-name>
  <url-pattern>*.mapurl-pattern>
servlet-mapping>
直接导致了ws服务被拦截,打开浏览器f12报错内容如下: Firefox 无法建立到 ws://localhost:8080/websocket-demo/websocket/1490266517000 服务器的连接。

删除掉上面的配置内容就好了。

若对上述内容读取困难请结合下面博客:

redis基本使用

websocket搭建


你可能感兴趣的:(redis,websocket)