websocket功能默认是关闭的,为啥默认不开启呢?因为这货用在论坛里有些鸡肋,原因如下

    • 启动论坛的同时还要启动一个websocket服务
    • 在关闭论坛服务的时候,websocket服务还会停留一段时间,说长不长说短也不短,前后大约要1-2分钟的样子
    • 论坛没有做无刷新页面获取数据的功能(比如pjax),所以每次访问论坛内的页面时,都会刷新页面,这会导致ws连接断开,然后等待页面加载完成后,它又开始重连
      目前围绕ws开发的功能有如下

    • 自己的话题被收藏了,会收到通知

    • 自己的话题被评论了,会收到通知
    • 自己的评论被回复了,会收到通知
    • 进入页面后,ws会自动获取未读消息数,然后展示在页面上的Header和document.title
      效果如下

    WebSocket配置 - 图1

    当然开启websocket服务也不是没有好处的,比如:

    • 上图中别人回复了自己的评论就会立即收到消息
    • 发一个帖子等着别人回复,不用一直刷新页面看有没有新消息了
      后续想法:

    • 给论坛接入pjax,让网页实现无刷新浏览内容,这样ws连接就不会断了

    • 给论坛开发一套ws主题,全站就只有一个首页,内容全靠ws服务从服务端推给前端,这个听起来很赞,实现不太好弄,相当于又重新开发一个网站了

    如果你看了上面的说明后,还是想开启,配置如下

    WebSocket配置 - 图2

    只有三个配置

    • 开启功能,不多说
    • ws服务的主机名,这个我在开发的时候用的是http://localhost:8080访问的论坛,所以这里就配置成了 localhost
    • ws服务的端口,论坛的端口是8080,我在开发的时候这里配置成了8081,只要不跟其它服务的端口冲突就可以
      至于上面主机名能不能配置成其它的,我没试过,不过它既然是一套服务了,应该是可以配置成独立的域名的,而且应该还可以直接抽出成一个单独的服务,这个我没验证,有兴趣的朋友可以试一下

    然后直接启动系统即可,注意,ws服务在前端只有登录后的用户才有效

    另外有一点要说明一下,如果你在开发过程中开启了ws服务,当改了点代码,要重启一下,这中间要等待1-2分钟,不知道为啥ws服务跟论坛服务不是同时停掉的,你要是有解决办法,求告知