美文网首页
faye-websocket 的使用

faye-websocket 的使用

作者: 临江仙儿 | 来源:发表于2018-08-21 23:26 被阅读0次

    1. 安装

    npm install faye-websocket

    2. 创建文件 server.js,内容如下

    var WebSocket = require('faye-websocket'),
        http      = require('http');
    
    var server = http.createServer();
    
    server.on('upgrade', function(request, socket, body) {
      if (WebSocket.isWebSocket(request)) {
        var ws = new WebSocket(request, socket, body);
        console.log("request come...");
        ws.on('message', function(event) {
            console.log("message receive...")
            ws.send(event.data);
        });
        
        ws.on('close', function(event) {
            console.log('close', event.code, event.reason);
            ws = null;
        });
        
        setInterval(() => {ws.send("data");}, 2000); // 定时器,每间隔 2s 发送一个 "data"
      }
    });
    
    server.listen(8000);
    console.log("server start...")
    

    3. 运行该服务

    执行 node server.js

    4. 编写客户端

    在 Chrome 浏览器的 console 里,执行

    ws = new WebSocket("ws://localhost:8000");
    ws.onmessage = function(event) { alert(event.data); };
    

    5. 结果

    可以观察到


    image.png

    客户端每间隔 2s,收到一个 data。

    6. 总结

    感觉就是两边的 ws 是对应的,都可以通过 send 方法发送数据,然后在 onmessage 回调里面接收数据。

    开始我理解成,如果我再在浏览器中创建一个 WebSocket,连接上服务器之后,向服务器发送数据,然后服务器会把数据转发给前一个客户端。实验了一下,前一个并没有接受到数据。其实从 server.js 中的代码也可以看到很清楚,每一个 request 创建了一个 WebSocket 与之对应。

    相关文章

      网友评论

          本文标题:faye-websocket 的使用

          本文链接:https://www.haomeiwen.com/subject/ehisiftx.html