其实不是很想写这篇- -,struts2真的是受够了,感觉兼容性很差。我的原意是在项目中写一套Stomp over WebSocket 的,结果差强人意,以我目前的水平估计是做不到了,那我们就退而求其次使用原生的websocket吧!(虽然网上说其中也有不少坑!)话不多说上步骤!
开发环境
- tomcat8.0
- jdk1.8
- maven
服务端
pom.xml
因为使用的是maven,所以第一步先把依赖配置好
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<scope>provided</scope>
<version>1.1</version>
</dependency>
这里有个注意点,最后统一抛= =
ChatServer.java
因为原生的websocket没有自带的订阅这种操作,就很生硬的往所有注册在列的客户端发送消息,这里可以做出修改达到区分频道的处理,(PS:纯个人思路哦!)
代码中onOpen方法已经开了一个头了,在客户端和服务端握手的时候传递参数过来用以区分渠道,接下来,我们可以将server保存在redis【或者别的什么你们觉得好的地方】。保存的key带上渠道名称用以区分。后续发送消息就可以做到类似订阅的效果啦!具体有兴趣的自己去实现哦!
@ServerEndpoint("/websocket")
public class ChatServer {
pri