java聊天室WebSocket 结合Springboot +maven 教程

实现的最终效果

在这里插入图片描述

1.websocket原理

在这里插入图片描述
前端通过订阅 相应的URL。
在这里插入图片描述

js 代码部分

var stompClient = null;

function setConnected(connected) {
$("#connect").prop(“disabled”, connected);
$("#disconnect").prop(“disabled”, !connected);
if (connected) {
$("#conversation").show();
}
else {
$("#conversation").hide();
}
$("#notice").html("");
}

function connect() {
var socket = new SockJS(’/endpoint-websocket’);
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
setConnected(true);
console.log('Connected: ’ + frame);

    //订阅群聊消息
    stompClient.subscribe('/topic/chat', function (result) {
    	showContent(JSON.parse(result.body));
    });
    
    //订阅在线用户消息
    stompClient.subscribe('/topic/onlineuser', function (result) {
    	showOnlieUser(JSON.parse(result.body));
    });
    
    
});

}

//断开连接
function disconnect() {
if (stompClient !== null) {
stompClient.disconnect();
}
setConnected(false);
console.log(“Disconnected”);
}

//发送聊天记录
function sendContent() {
stompClient.send("/app/v6/chat", {}, JSON.stringify({‘content’: $("#content").val()}));

}

//显示聊天记录
function showContent(body) {
$("#record").append("" + body.content + " “+new Date(body.time).toLocaleTimeString()+”");
}

//显示实时在线用户
function showOnlieUser(body) {
$("#online").html("" + body.content + " “+new Date(body.time).toLocaleTimeString()+”");
}

$(function () {

connect();//自动上线

$("form").on('submit', function (e) {
    e.preventDefault();
});
 
$( "#disconnect" ).click(function() { disconnect(); });
$( "#send" ).click(function() {
	sendContent(); 
});

});

2.后端必不可少的webstocket配置

在这里插入图片描述
前端发送的通过js函数
在这里插入图片描述
前端接收

在这里插入图片描述
在这里插入图片描述

后端接收
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WebSocket聊天室是使用Web技术实现实时双向通信的一种常见方式,结合Spring Boot、Vue.js和MySQL,可以构建一个高性能的后台服务器与前端交互的应用。下面是一个简要的概述: 1. **Spring Boot**: 作为Java的轻量级框架,Spring Boot简化了配置过程,提供了快速启动web应用的能力。你可以利用Spring Websocket来处理WebSocket连接和消息传递。 2. **Vue.js**: 这是一个流行的JavaScript前端框架,用于构建用户界面。在Vue中,你可以创建WebSocket的连接,实现实时数据更新和事件驱动的通信。 3. **MySQL**: 作为关系型数据库,MySQL存储聊天室中的用户信息、会话记录以及消息内容。通过Ajax或Fetch API,你可以将前端发送的数据保存到MySQL,并在需要时查询更新的数据展示给用户。 **实现步骤:** - **后端(Spring Boot)**: - 创建WebSocket配置,比如`org.springframework.messaging.handler.annotation.MessageMapping`注解处理WebSocket消息。 - 建立数据库模型,如User、Session表,以及Message实体。 - 使用JPA进行数据库操作,实现增删改查。 - **前端(Vue.js)**: - 使用WebSocket库(如`WebSocket`原生API或第三方库`vue-websocket`)建立连接。 - 用户界面设计,包括输入框、聊天列表和发送按钮。 - 实现消息的发送和接收功能,利用Vue的响应式特性实时更新显示。 **相关问题--:** 1. Spring Boot如何启用WebSocket支持? 2. Vue.js如何初始化WebSocket连接并处理接收到的消息? 3. 如何确保Vue前端与Spring Boot后端的数据同步?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值