效果展示:
悟空消息:
Java
师傅消息:
Java
八戒消息:
Java
(1)在连接的时候,让用户输入昵称
这个简单,只需要提供一个input让用户进行输入即可:
Java
(2)连接前的校验
在用户点击连接判断用户是否输入昵称了:
Java
以上这些都是简单了,那问题的关键就是如何把昵称显示在聊天信息中呢?这里提供几种思路,大家可以自己开拓方法。
(3)昵称显示方式1:消息携带
这种方式就是在发送消息的时候,直接拼接上用户的昵称,这种改动是最小的,也是比较简单的方式,只需要修改前端网页代码即可:
Java
但是这种方式有一个弊端,就是服务端要知道用户的昵称就比较费劲了,所以这种方式就是玩玩而已,实际不这么玩。
(4)昵称显示方式2:连接传递
这个就是在建立连接的时候传递到服务端连接点。
首先修改客户端的连接方式:
Java
首先服务端的服务端点发布:
Java
服务端获取参数:
这个在每个方法中都可以获取的,使用@PathParam("nickname") String nickname,比如在连接的时候:
Java
(5)昵称显示方式3:使用httpSession
这种方式实现起来就比较复杂了,这里只说下大概的一个思路,就是将昵称保存到httpSession对象中,使用("nickname",nickname)进行存储。
问题的关键是如何在websocket中获取到httpSession呢,主要是通过添加一个配置类进行实现:
Java
那么在WebSocket就可以获取到HttpSession对象了:
Java
这种方式具体可以参考链接的文章,博主并没有具体的进行实现,只是简单看了下文章内容,具体地址如下:
方案总结
本篇文章最终使用的是方式2的方式进行实现,对于方式2和方式3都有各自的使用场景,大家可以自己进行斟酌。
Java学习资料获取(复制下段连接至浏览器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==