nodejs搭建websocket服务器

2021-02-03 14:40:06 浏览数 (1)

前面我们了解了什么是websocket,下面用nodejs简单的搭建一个websocket服务器,我们使用nodejs-websocket这个npm包,看代码:

代码语言:javascript复制
var ws = require('nodejs-websocket');
var server = ws.createServer(function(socket){
// 事件名称为text(读取字符串时,就叫做text),读取客户端传来的字符串
   var count = 1;
    socket.on('text', function(str) {
       // 在控制台输出前端传来的消息  
        console.log(str);
        //向前端回复消息
        socket.sendText('服务器端收到客户端端发来的消息了!'   count  );
    });
}).listen(3000);

阅读源码,引入nodejs-websocket赋值给ws,调用ws对象上的createServer方法,创建websocket服务器。

createServer传递的参数为一个函数,这个函数的参数是一个socket对象,通过这个对象可以可前端进行信息交互了,我们用socket监听text事件,并用sendText返回文本信息。

客户端代码:

代码语言:javascript复制
<script>
       // 打开一个 web socket  这里端口号和上面监听的需一致
        var ws = new WebSocket('ws://localhost:3000/');
   
        // Web Socket 已连接上,使用 send() 方法发送数据
        ws.onopen = function() {
        // 这里用一个延时器模拟事件
            setInterval(function() {
                ws.send('客户端消息');
            },2000);
        }
        // 这里接受服务器端发过来的消息
        ws.onmessage = function(e) {
            console.log(e.data)
        }

</script>

客户端代码我们使用原生的websocket来实现,首先new一个websocket对象,参数为ws地址,指向我们的websocket服务器。

然后监听open事件和messge事件。

创建websocket服务器的nodejs库有不少,其原理都如上文一样,不过封装之后使用更加简便。

0 人点赞