当前位置:网站首页 > 编程语言 > 正文

网页聊天源码(web聊天源码)



首先了解Mapper

实现会话列表和好友列表的切换

 
  

实现注册登录

 
  

在UserMapper.xml里实现对于数据库中的查找操作

 
  

在通过UserMapper和数据库进行连接查询操作时,是可以对数据库中要查询的#{username} 和#{password} 进行一个取别名的操作的,然后方便的是,在进行UserController里面,可以使用取的别名来作为参数,也可以使用User类中的属性名作为参数(如果参数是myUsername也可以使用)

 
  

利用的是DuplicateKeyException 这个异常,来进行防止用户名重复的注册

实现获取用户登录信息

 
  

客户端代码

 
  

实现获取好友列表

 
   

Mapper中定义和数据库交互的方法

 
   

数据库操作
● 这里因为在friend表中,只有两个字段,friendId和userId 所以在 查询的时候,要从friend表中查询到和当前登录信息相同userId的 的friend,体现在friendId上面
● 就是要查询到与userId对应的friendId,此处的friendId就相当于user表中的userId 根据在user表中查到的userId可以在 user表中获取到friend的friendName,后面可以使用




 
   

获取到好友列表
● 因为好友有很多,是一个列表,返回时候采用list进行返回
● 先从请求中的session中获取到当前登录的用户,如果获取不到session或者获取不到用户就返回空的列表
● 通过从user中获取到的userId来进行查找好友







 
   

客户端实现
1、先选中好友列表,把好友列表刷新清空
2、从返回的响应中读取到每个对象中的内容
3、 把响应中读取到的friendId设置到li的属性中,以备后用
4、把当前的标签添加到好友列表中










 
   

实现获取会话列表

 
   

MessageSessionItem类来表示数据库中的一条记录

 
   
 
   
 
   
 
   

客户端
1、选中会话列表,进行清空操作
2、创建li标签,里面对应的是会话中好友的名称和消息
3、把响应中的sessionId 添加到当前的li标签的属性中
4、把会话添加到会话列表中










 
   

添加点击事件

 
   

客户端

 
   

实现创建会话

 
   

服务器

 
   

MessageSessionMapper:

 
   

MessageSessionMapper.xml

 
   

实现获取到指定会话最近一条消息

MessageMapper中:

 
   
 
   
 
   

实现获取到会话历史消息

在之前的clickSession中,我们想要做到点击会话,设置为高亮选中状态,并且在右侧的消息主界面上面显示到所有的历史消息

 
   

MessageMapper

 
   
 
   

客户端

 
   

WebSocket是一种在单个TCP连接上进行全双工通信的协议,它允许浏览器与服务器之间进行实时的双向数据传输。与传统的HTTP请求-响应模式不同,WebSocket允许服务器主动向客户端推送数据,而不需要客户端发起请求。

  1. 用户a通过自己的WebSocket连接发送消息给服务器。
  2. 服务器收到a发送的消息,并识别出目标用户是b。
  3. 服务器找到与用户b关联的WebSocket连接。
  4. 服务器将a的消息直接发送给用户b的WebSocket连接。
  5. 用户b的WebSocket连接接收到服务器发送的消息。

1、先实现客户端发送消息

 
   

2、实现服务器接收/转发消息

  1. 首先,该类使用了 @Configuration 注解,表示它是一个 Spring 的配置类,会被 Spring 容器扫描并加载。
  2. @EnableWebSocket 注解用于启用 WebSocket 功能。
  3. WebSocketConfigurer 接口是 Spring 提供的用于配置 WebSocket 的接口,通过实现该接口,可以注册 WebSocket 处理器和配置 WebSocket 相关信息。
  4. 在这个配置类中,注入了两个 WebSocket 处理器:TestWebSocketController 和 WebSocketController。
  5. 在 registerWebSocketHandlers 方法中,通过 WebSocketHandlerRegistry 对象注册了 WebSocketController 作为处理器,同时指定了 WebSocket 的请求路径为 “/WebSocketMessage”。
  6. 使用 addInterceptors 方法注册了 HttpSessionHandshakeInterceptor 拦截器,这个拦截器的作用是将用户的 HttpSession 中添加的 Attribute 键值对也添加到 WebSocketSession 中。这样在 WebSocketController 中的 afterConnectionEstablished 方法中可以通过 session.getAttributes().get(“user”) 来获取到用户的信息,包括 HttpSession 中的信息
 
   
 
   
 
   

3、实现客户端接收消息

 
   

源码保存在: 网页聊天程序 https://gitee.com/duan-duan-wang/chatroom

到此这篇网页聊天源码(web聊天源码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • Impdp命令详解(impdp 命令)2026-05-06 16:36:04
  • steam怎么用二维码登录(steam二维码在哪)2026-05-06 16:36:04
  • nonetype对象没有属性shape(nonetype对象没有属性shape怎么解决)2026-05-06 16:36:04
  • ad如何设置中文(nomad如何设置中文)2026-05-06 16:36:04
  • 好玩的代码复制手机(游戏代码可以复制的)2026-05-06 16:36:04
  • 获取位置(定位打开了无法获取位置)2026-05-06 16:36:04
  • 条件变量是什么(条件变量是什么变量)2026-05-06 16:36:04
  • 伪类选择器和标签选择器优先级(伪类选择器有哪些)2026-05-06 16:36:04
  • issa英文名(issa英文名怎么读)2026-05-06 16:36:04
  • 柯美c7000代码2423(柯美c7000代码2424)2026-05-06 16:36:04
  • 全屏图片