草庐IT

javascript - 删除断开 socket.io 上的对象

我正在使用Nodejs和Socket.io。当客户端连接时,会创建新的JavaScript对象。这些对象会永远存在吗?当客户端断开连接时,它们应该被删除还是删除?甚至可以删除对象吗?我知道删除不起作用...谢谢-我想这是一个比较笼统的问题,任何建议都会很有帮助。谢谢! 最佳答案 如果您不清理,那么是的,它们将永远留在那里,因为我认为您正在使它们全局化。一旦用户断开连接,您应该通过绑定(bind)到disconnect事件监听器进行清理:varclients={}sockets.on('connection',function(soc

ajax - 何时使用 socket.io 何时使用 ajax

我一直在用nodejs编程,研究了如何使用socket.io和ajax调用Node服务器。socket.io是否旨在取代ajax?我很想知道在哪些情况下使用socket.io更好,哪些ajax更好。感谢您的意见。 最佳答案 嗯,Web套接字(通过socket.io)提供ajax缺少的主要功能之一是服务器推送。因此,对于ajax,如果您想了解服务器上的新事件(例如,不同的用户向您发送了一条消息),您需要进行服务器轮询,这意味着您以相对频繁的周期性循环发送ajax请求。大多数情况下,服务器会响应没有新内容,但偶尔当有新内容时,客户端可以

ajax - 何时使用 socket.io 何时使用 ajax

我一直在用nodejs编程,研究了如何使用socket.io和ajax调用Node服务器。socket.io是否旨在取代ajax?我很想知道在哪些情况下使用socket.io更好,哪些ajax更好。感谢您的意见。 最佳答案 嗯,Web套接字(通过socket.io)提供ajax缺少的主要功能之一是服务器推送。因此,对于ajax,如果您想了解服务器上的新事件(例如,不同的用户向您发送了一条消息),您需要进行服务器轮询,这意味着您以相对频繁的周期性循环发送ajax请求。大多数情况下,服务器会响应没有新内容,但偶尔当有新内容时,客户端可以

node.js - 对 socket.io 使用 http 和 https

我正在尝试使socket.io在http和https连接上都可以工作,但似乎以我当前的配置可以只在其中一个上工作。使用以下配置选项,它可以通过https访问我的应用程序,但是当尝试通过http访问它时,它无法连接并且我收到错误消息:varapp=express(),http=require('http').createServer(app),https=require('https').createServer(options,app),io=require('socket.io').listen(https,{log:false})后来我有了这个:http.listen(80,ser

node.js - 对 socket.io 使用 http 和 https

我正在尝试使socket.io在http和https连接上都可以工作,但似乎以我当前的配置可以只在其中一个上工作。使用以下配置选项,它可以通过https访问我的应用程序,但是当尝试通过http访问它时,它无法连接并且我收到错误消息:varapp=express(),http=require('http').createServer(app),https=require('https').createServer(options,app),io=require('socket.io').listen(https,{log:false})后来我有了这个:http.listen(80,ser

node.js - 如何处理 Socket.io 中的关闭事件?

我正在制作基于Web的简单在线游戏。游戏使用Socket.io相互连接。但我遇到了问题。考虑以下情况。我运行了Socket.io服务器。一个玩家制作房间,另一个玩家加入房间。他们玩了一段时间游戏..但是一位玩家非常生气并关闭了游戏标签。在这种情况下,如何在服务器端获取一个客户端已关闭浏览器的事件?根据谷歌搜索,人们这样说:“使用像onBeforeUnload这样的浏览器关闭事件”但我知道所有浏览器都不支持onBeforeUnload事件。所以我想要解决方案检查SERVERSIDE中的客户端断开事件。在Socket.io(nodeJS)服务端控制台中,当客户端连接关闭时,控制台显示如下:

node.js - 如何处理 Socket.io 中的关闭事件?

我正在制作基于Web的简单在线游戏。游戏使用Socket.io相互连接。但我遇到了问题。考虑以下情况。我运行了Socket.io服务器。一个玩家制作房间,另一个玩家加入房间。他们玩了一段时间游戏..但是一位玩家非常生气并关闭了游戏标签。在这种情况下,如何在服务器端获取一个客户端已关闭浏览器的事件?根据谷歌搜索,人们这样说:“使用像onBeforeUnload这样的浏览器关闭事件”但我知道所有浏览器都不支持onBeforeUnload事件。所以我想要解决方案检查SERVERSIDE中的客户端断开事件。在Socket.io(nodeJS)服务端控制台中,当客户端连接关闭时,控制台显示如下:

node.js - NodeJS + Socket.io 连接断开/重新连接?

在生产中,我有一个使用连接局部变量来保存游戏状态的游戏。但是我注意到,如果我在连接上闲置了一段时间,它会断开连接并重新连接,从而丢失当前状态。在本地主机上进行测试期间,我从未注意到这种行为。这是套接字连接的规范行为还是导致连接断开的其他原因。如果这是正常行为,通常如何处理?连接值是否应该全局存储,以便在用户断开/重新连接时可以恢复? 最佳答案 您的问题与套接字超时有关。如果某个socket没有事件,socket.io会自动关闭它。一个简单的(和骇人听闻的)修复方法是向连接的客户端发送心跳以创建事件并阻止套接字超时。服务器:funct

node.js - NodeJS + Socket.io 连接断开/重新连接?

在生产中,我有一个使用连接局部变量来保存游戏状态的游戏。但是我注意到,如果我在连接上闲置了一段时间,它会断开连接并重新连接,从而丢失当前状态。在本地主机上进行测试期间,我从未注意到这种行为。这是套接字连接的规范行为还是导致连接断开的其他原因。如果这是正常行为,通常如何处理?连接值是否应该全局存储,以便在用户断开/重新连接时可以恢复? 最佳答案 您的问题与套接字超时有关。如果某个socket没有事件,socket.io会自动关闭它。一个简单的(和骇人听闻的)修复方法是向连接的客户端发送心跳以创建事件并阻止套接字超时。服务器:funct

Node.js Socket.IO 客户端 'unhandled socket.io url'

我正在尝试让node.js客户端使用Socket.IO与node.js服务器通信,根据文档,这应该很容易,但是我只是收到一条消息“信息-未处理的socket.io每当客户端尝试连接到服务器时,服务器上的url'。这是一个非常基本的例子:在一个目录中,我使用以下方法安装了必要的Socket.IO模块:npminstallsocket.iosocket.io-client在一个文件servernode.js我放:varapp=require('http').createServer(),io=require('socket.io').listen(app);io.sockets.on('c