首页 » Web前端 » phpsocket点对点聊天技巧_Spring Boot进修笔记之运用WebSocket实现简单聊天功能

phpsocket点对点聊天技巧_Spring Boot进修笔记之运用WebSocket实现简单聊天功能

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

本日给大家先容一下如何在spring boot中利用websocket,实现一个大略的谈天功能。
websocket相信大家已经非常熟习了,这里就不多赘述,下面直接开始项目。

新建一个spring boot 项目,这里我们利用spring security安全框架,thymeleaf模板引擎,为了大略演示,并没有利用数据库。

phpsocket点对点聊天技巧_Spring Boot进修笔记之运用WebSocket实现简单聊天功能

2.接着大略先容一下spring security的配置,这里详细先容前面文章都有解释,须要把稳的是利用的Spring Security 4.0之后,引入了CSRF,默认是开启。
这里须要将它关闭。
在configure这个方法中,我们定义两个用户,设置用户名、用户密码、用户角色等信息,这里是为了方便演示,实际做法该当通过用户名去数据库查询,详细做法可以参考我专门先容如何利用spring security的文章。

phpsocket点对点聊天技巧_Spring Boot进修笔记之运用WebSocket实现简单聊天功能
(图片来自网络侵删)

3.下面便是websocket的核心配置内容了,这里须要详细跟大家先容一下

1.@EnableWebSocketMessageBroker表明表示开启利用STOMP协议来传输基于代理的,Broker便是代理的意思。

2.registerStompEndpoints方法表示注册STOMP协议的节点,并指定映射的URL。
registerStompEndpoints.addEndpoint(\"大众/endpointChat\"大众)表示添加了一个/endpointChat端点,客户端就可以通过这个端点来进行连接。

3.withSockJS()的浸染是开启SockJS支持

4.configureMessageBroker方法用来配置代理,这里的代理是/queue,表示客户端订阅地址的前缀信息,也便是客户端吸收做事真个地址的前缀信息

4.谈天掌握器,这里的逻辑也比较大略,我们假设用户只有两个,便是张三和李四相互发送信息

这里须要解释几个问题:

1.@MessageMapping:Spring对付WebSocket封装的特殊大略,供应了一个@MessageMapping表明,功能类似@RequestMapping,它是存在于Controller中的,定义一个的基本要求,功能也跟@RequestMapping类似,包括支持通配符``的url定义等等

2.SimpMessagingTemplate这个类紧张是实现向浏览器发送的功能, 是Spring-WebSocket内置的一个发送工具,可以将发送到指定的客户端。

3.在Spring MVC中,可以直接在参数中获取Principal,Principal中包含有当前用户的用户名。

4.convertAndSendToUser方法是向用户发送一条,第一个参数是目标用户用户名,第二个参数是浏览器中订阅的地址,第三个参数是本身。

5.映射路径配置

6.登录页面,便是一个大略的登录页面,没什么好说的

7.谈天页面,页面内容很大略,便是一个表单,里面有一个文本域和一个发送按钮,这个页面须要stomp.js

和socket.js这两个文件。

下面说一下js连接做事的的过程

1.var sock= new SockJS('/endpointChat');表示连接的SockJS的endpoint名称为/endpointChat,这个名称是我们在配置websocket的时候配置的:stompEndpointRegistry.addEndpoint(\"大众/endpointChat\公众).withSockJS();

2.stomp = Stomp.over(sock);表示利用STOMP来创建WebSocket客户端

3.stomp中的connect方法用来连接做事端,连接成功之后注册监听,在注册监听的时候,注册的地址/user/queue/notifications比WebSocket配置文件中的多了一个/user,这个/user是必不可少的,利用了它才会点对点传送。
notifications是自定义的名称,只要和controller中的对应上就行

4. stomp中的subscribe方法来吸收做事端发送来的

5.stomp.send(\"大众/chat\"大众, {}, text);stomp中的send方法表示发送一条到做事端,要求路径是:/chat

8.测试,在不同的浏览器中用zhangsan和lisi登录,成功之后就可以谈天了

以上便是在spring boot中利用web socket实现大略的点对点谈天通信的运用,希望能对须要的朋友供应点帮助。

标签:

相关文章