使用Java WebSocket技术实现在线聊天系统

原创 系统管理员 2024-12-09 13:36 126阅读 0赞

WebSocket是一种在单个TCP连接上进行全双工通信的协议。下面是一个简单的Java WebSocket在线聊天系统的步骤:

  1. 环境准备:需要有JDK和Spring Boot项目。

  2. WebSocket服务器创建:使用Spring WebSocket框架创建一个WebSocket服务器端。

  1. import org.springframework.messaging.annotation.QueueAnnotation;
  2. import org.springframework.web.socket.TextMessage;
  3. import org.springframework.web.socket.WebSocketSession;
  4. @QueueAnnotation(name = "chatMessages"))
  5. public class ChatWebSocketService {
  6. @Override
  7. public void onOpen(WebSocketSession session) {
  8. System.out.println("WebSocket opened: " + session);
  9. }
  10. @Override
  11. public void onClose(WebSocketSession session, CloseReason reason) {
  12. System.out.println("WebSocket closed: " + session + ", Reason: " + reason);
  13. }
  14. @Override
  15. public void onError(WebSocketSession session, Throwable cause) {
  16. System.out.println("WebSocket error: " + session + ", Cause: " + cause);
  17. }
  18. // WebSocket消息处理方法
  19. public void sendMessage(WebSocketSession session, String message) {
  20. session.send(new TextMessage(message)));
  21. }
  22. }
  1. 客户端创建:使用JavaScript(可以是jQuery)创建WebSocket连接并进行聊天。
  1. // JavaScript client code
  2. var socket = new WebSocket("ws://localhost:8080/chatWebSocketService"); // Connect to server
  3. socket.onopen = function(event) {
  4. console.log('Connection open');
  5. sendMessage(socket, "Hello from client!"));
  6. };
  7. socket.onmessage = function(event) {
  8. var receivedMessage = event.data;
  9. console.log('Received message:', receivedMessage);
  10. if (receivedMessage == 'Hello from server!')) {
  11. sendMessage(socket, "Client received your greeting!"));
  12. }
  13. };
  14. socket.onerror = function(error) {
  15. console.log('WebSocket error: ', error);
  16. };
  17. // Message sending function
  18. function sendMessage(socket, message) {
  19. socket.send(new TextMessage(message)));
  20. }

以上步骤中,ChatWebSocketService是服务器端,Socket客户端。在实际应用中,你需要对聊天记录进行持久化存储,以备后查。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,126人围观)

还没有评论,来说两句吧...

相关阅读

    相关 WebSocket实现在线聊天

    这一篇文章前面部分我们会先介绍WebSocket协议的基本知识,在最后我们会用Spring Boot来集成WebSocket实现一个简单的在线聊天功能,单纯想看实现部分的话可以