Node.Js 使用 websocket

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 已关闭!');
});

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值