websocket
安装命令
npm install nodejs-websocket
var ws = require('nodejs-websocket');
var server = ws.createServer(function (conn) {
console.log("创建服务")
//获取客户端发来的消息
conn.on('text', function (str) {
console.log(str)
// conn.sendText("你发送的消息:" + str);
hello(str);
})
//关闭链接
conn.on('error', function (err) {
console.log("关闭链接" + err)
})
}).listen(2333)
//广播
function hello(str) {
server.connections.forEach(function(conn){
conn.sendText(str);
})
}
前端
socket测试
@
<textarea id\="chatBox" class\="col-sm-2 form-control" placeholder\="请输入内容" rows\="3"
style\="margin-bottom:10px"\>
发送信息
A 加入了房间 -->
var ws = new WebSocket('ws://localhost:2333');
//给服务端发消息
ws.onopen = function () {
// ws.send("来自客户端的信息");
document.getElementById('btnSend').onclick = function () {
var value = document.getElementById("chatBox");
//判断内容是否为空
if (value.value == "") {
// 获取所有具有class为"col-sm-6"的元素
var elements = document.getElementsByClassName("col-sm-6");
// 遍历元素,并为每个元素添加一个新的div
for (var i = 0; i < elements.length; i++) {
var newDiv = document.createElement("div");
newDiv.className = "alert alert-danger";
// 在新div中添加内容或样式,这里只是一个示例
newDiv.innerHTML = "内容不能为空";
// 将新div添加到当前元素的子元素中
elements[i].appendChild(newDiv);
}
return;
}
ws.send(value.value);
value.value = "";
}
}
//获取服务端发来的消息
ws.onmessage = function (e) {
console.log(e.data)
// document.body.innerHTML += '' + e.data + ''
//var p = document.createElement('p')
//p.innerHTML = e.data
//document.body.appendChild(p)
// 获取所有具有class为"col-sm-6"的元素
var elements = document.getElementsByClassName("col-sm-6");
// 遍历元素,并为每个元素添加一个新的div
for (var i = 0; i < elements.length; i++) {
var newDiv = document.createElement("div");
newDiv.className = "alert alert-info";
// 在新div中添加内容或样式,这里只是一个示例
newDiv.innerHTML = e.data;
// 将新div添加到当前元素的子元素中
elements[i].appendChild(newDiv);
}
}
// ws.send("你hi奥");
广播
function hello(str) {
server.connections.forEach(function(conn){
conn.sendText(str);
})
}
UNI-APP使用Socket
官网:uni.connectSocket(OBJECT) | uni-app官网 (dcloud.net.cn)
Socket地址
const urls = 'ws://192.168.31.123:2333';
创建socket服务
uni.connectSocket({
url: urls
});
监听WebSocket连接打开事件。
uni.onSocketOpen(function(res) {
console.log('WebSocket连接已打开!',res);
});
监听WebSocket错误。
uni.onSocketError(function (res) {
console.log('WebSocket连接打开失败,请检查!');
});
通过 WebSocket 连接发送数据,需要先uni.connectSocket,并在uni.onSocketOpen回调之后才能发送。
uni.sendSocketMessage({
data: '给服务端发送数据'
});
从服务端获取数据
uni.onSocketMessage(function(res) {
console.log('收到服务器内容:' + data);
});
关闭socket服务,写在页面的 onHide 中
uni.onSocketClose(function (res) {
console.log('WebSocket 已关闭!');
});