koj*_*ow7 2 keep-alive linode node.js socket.io
我在Linode服务器上使用node.js和socket.io.我被告知我应该使用KeepAlives和我的应用程序来使用Linode NodeBalancer.我还被告知我必须将NodeBalancer协议设置为使用TCP而不是(HTTP或HTTPS都禁用KeepAlives).
我的问题是,KeepAlives是否已经在socket.io中默认实现了?似乎有一些东西保持连接活着所以我认为这已经由socket.io处理.但是,我似乎无法找到有关此主题的任何信息.如果socket.io中默认没有实现KeepAlive,那么使用NodeBalancer会遇到什么问题?如果我应该实现KeepAlives,我需要采取哪些步骤才能在我的应用中实现它们?
另外一个问题是,如果在socket.io中实现KeepAlive,如果我使用HTTP选项而不是TCP,我将面临哪些问题?
我的问题是,默认情况下,在 socket.io 中是否已经实现了 KeepAlives?
是的,ping每隔一段时间就会发送一个数据包(一个非常小的 webSocket 数据包)作为心跳来“测试”连接并确保它仍然有效并使其保持活动状态。pong从ping请求中返回一个数据包,以便发送方知道是否ping通过。
socket.io 的这个 ping 方面的文档很差,但是通过检查socket.io 使用的 engine.io的源代码,有一个pingTimeout(等待pong响应的时间和一个pingInterval(发送一个 的频率ping)。
是.你可以设置选项.
var myApp = require('express')();
var http = require('http').Server(myApp);
var io = require('socket.io')(http, {'pingTimeout': 7000, 'pingInterval': 3000});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5371 次 |
| 最近记录: |