faye-websocket 的使用

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 与之对应。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,743评论 1 92
  • 原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-WebSo...
    敢梦敢当阅读 12,882评论 0 50
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,810评论 19 139
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,053评论 3 119
  • 国庆期间去医院看爷爷 这个国庆假期我们每天去看爷爷,先告诉你们我爷爷为什么要住院,因为...
    小蝴蝶郭静怡阅读 594评论 0 0

友情链接更多精彩内容