fly63前端网

www.fly63.com

首页文章资源工具教程 栏目
  • 关于我们
  • 网站投稿
  • 赞助一下
搜索

在线工具_工作生活好帮手

打造各种简单、易用、便捷的在线工具,网友无需注册和下载安装即可使用

点击查看

关闭

提交网站

faye-websocket
分享
复制链接
新浪微博
QQ 好友

扫一扫分享

GitHub:https://github.com/faye/faye-websocket-node
网站描述:Node.js 应用程序中命令预先存在的 WebSocket 连接

Faye WebSocket是从 Faye 项目中提取出来的,它是一个多用途的 WebSocket,它可以很容易地在 Node.js 应用程序中命令预先存在的 WebSocket 连接。

Faye WebSocket 仅提供标准的 WebSocket api 和在 Node.js 中构建 WebSocket 客户端和服务器所需的类。它不提供服务器本身或提供任何其他抽象。

要安装Faye WebSocket,请运行 npm install faye-WebSocket。Faye项目的README部分提供了入门的必要文档。

安装

npm install faye-websocket

在 Node 中处理 WebSocket 连接

您可以通过侦听 HTTP 升级请求并为请求创建新套接字来处理服务器端的 WebSocket。例如,这是您实现回显服务器的方式:

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);

ws.on('message', function(event) {
ws.send(event.data);
});

ws.on('close', function(event) {
console.log('close', event.code, event.reason);
ws = null;
});
}
});

server.listen(8000);

WebSocket对象也是双工流,因此您可以将该 ws.on('message', ...)行替换为:

ws.pipe(ws);

请注意,在某些情况下(特别是通过 HTTP 代理连接的 Draft-76 客户端),WebSocket 握手在您调用后不会完成,new WebSocket()因为服务器尚未收到来自客户端的整个握手。在这种情况下,调用ws.send()将在内存中缓冲消息,直到握手完成,此时任何缓冲的消息都将发送到客户端。

如果需要检测 WebSocket 握手何时完成,可以使用 onopen事件。

如果连接的协议版本支持,可以调用ws.ping()发送ping消息,等待客户端响应。此方法接受一个消息字符串,以及一个在收到匹配的 pong 消息时触发的可选回调。true当且仅当发送了 ping 消息时,它才会返回。如果客户端不支持 ping/pong,则此方法不发送数据并返回 false.

ws.ping('Mic check, one, two', function() {
// fires when pong is received
});



链接: https://fly63.com/nav/3610

more>>
相关栏目
Express
基于 Node.js 平台,快速、开放、极简的 web 开发框架
官网GitHub
pm2
pm2 是一个带有负载均衡功能的Node应用的进程管理器
官网GitHub
Koa
基于 Node.js 平台的下一代 web 开发框架
官网GitHub
Egg.js
为企业级框架和应用而生
官网GitHub
Primus
通用包装器实时框架
点击进入GitHub
Electrode
一个用于构建通用 React / Node.js 应用程序的平台
点击进入GitHub
vm2
一个Node.js 官方 vm 库的替代品
点击进入GitHub
node-opencv
node视觉算法库
官网GitHub
node-xml2js
Json与xml相互转化的工具
点击进入GitHub
node-red
一套开源可视化界面开发工具
官网GitHub
polemo
网易开源的游戏后端框架
点击进入GitHub
AdonisJs
一款类似laravel的node.js框架
官网GitHub
GitBook
基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书。
官网
nodebestpractices
NodeJS最佳实践
官网GitHub
Inquirer.js
NodeJs交互式命令行工具
点击进入GitHub
Dotenv
从 .env文件 加载用于nodejs项目的环境变量
点击进入GitHub

手机预览