欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java 一对多 socket_js作为websocket client,服务用java 点对点、一对多聊天

发布时间:2025/3/15 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java 一对多 socket_js作为websocket client,服务用java 点对点、一对多聊天 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

js作为websocket client,服务用java 点对点、一对多聊天

今天就分享前端的websokcet处理

websocket处理就是一个客服端和服务端之间的长连接

聊天室

#message {

margin-top: 20px;

border: 1px solid gray;

padding: 20px;

}

昵称:

连接WebSocket

断开连接


消息:

频道号

发送消息

//连接对象.

var websocke = null;

var nickname = null;

var uid = null;

function conectWebSocket() {

nickname = document.getElementById("nickname").value;

if (nickname == '') {

alert("请输入昵称");

return;

}

//判断当前的浏览器是否支持websocket.

if ("WebSocket" in window) {

uid = "sdaaaaaaaaaaaaaaaaaaaaaaaaa";

websocket = new WebSocket("ws://localhost:8080/websocket/" + nickname + "/" + uid);

} else {

alert("Not support websocket");

return false;

}

//连接成功的方法.

websocket.onopen = function(event) {

setMessgeHtml("Loc MSG:已连接");

}

//连接关闭.

websocket.onclose = function(event) {

// aler

setMessgeHtml("Loc MSG:连接关闭");

}

//连接异常.

websocket.onerror = function(event) {

setMessgeHtml("Loc MSG:连接异常");

}

websocket.onmessage = function(event) {

console.log("fallback :", event);

setMessgeHtml(event.data);

}

} //conectWebSocket

var single = (function() {

return {

getInstance: function() {

if (websocke != null && websocke.readyState == 1) {

console.log("wlx-------------------" + websocke.readyState)

setMessgeHtml("Loc MSG:不能重复连接!");

return websocke

} else {

websocket = null

nickname = document.getElementById("nickname").value;

if (nickname == '') {

alert("请输入昵称");

return;

}

//判断当前的浏览器是否支持websocket.

if ("WebSocket" in window) {

uid = "sdaaaaaaaaaaaaaaaaaaaaaaaaa";

websocket = new WebSocket("ws://localhost:8080/websocket/" + nickname + "/" + uid);

} else {

alert("Not support websocket");

return false;

}

//连接成功的方法.

websocket.onopen = function(event) {

setMessgeHtml("Loc MSG:已连接");

}

//连接关闭.

websocket.onclose = function(event) {

// aler

setMessgeHtml("Loc MSG:连接关闭");

}

//连接异常.

websocket.onerror = function(event) {

setMessgeHtml("Loc MSG:连接异常");

}

websocket.onmessage = function(event) {

console.log("fallback :", event);

setMessgeHtml(event.data);

}

return websocket;

} //conectWebSocket

}

}

})();

function initws() {

websocke = single.getInstance()

}

function setMessgeHtml(msg) {

var message = document.getElementById("message");

message.innerHTML += msg + "
";

}

function closeWebSocket() {

websocke.close();

}

/**

发送消息.

*/

function send() {

var message = document.getElementById("text").value;

var toUser = document.getElementById("toUser").value;

var socketMsg = {

msg: message,

toUser: toUser

};

if (toUser == '') {

socketMsg.type = 0; //群聊.

} else {

socketMsg.type = 1; //单聊.

}

console.log("发送的是:", socketMsg);

console.log("连接状态:", websocke.readyState);

//websocket.send(nickname+":"+message);

websocke.send(JSON.stringify(socketMsg)); //将json对象转换为json字符串.

}

websocket 要使用js单例模式,避免点击一个连接的在发送消息的时候会收到两个一样的文件

ps: 服务端代码有需求未完善,稍后分享

总结

以上是生活随笔为你收集整理的java 一对多 socket_js作为websocket client,服务用java 点对点、一对多聊天的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。