草庐IT

socket_protect

全部标签

node.js - 在socket.io中获取消息发送者的客户端ID?

在服务器端我得到了socket.on('chat',function(data){io.sockets.socket(data.clientid).emit('chat',{msg:data.msg,senderid:senderid});});我怎样才能在发件人不必通过消息发布他们的clientid的情况下获取senderid? 最佳答案 事实证明,我可以只使用通过msg发送的用户的socket.id来获取他们的clientid,例如:socket.on('chat',function(data){io.sockets.socke

node.js - 在socket.io中获取消息发送者的客户端ID?

在服务器端我得到了socket.on('chat',function(data){io.sockets.socket(data.clientid).emit('chat',{msg:data.msg,senderid:senderid});});我怎样才能在发件人不必通过消息发布他们的clientid的情况下获取senderid? 最佳答案 事实证明,我可以只使用通过msg发送的用户的socket.id来获取他们的clientid,例如:socket.on('chat',function(data){io.sockets.socke

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

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

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)服务端控制台中,当客户端连接关闭时,控制台显示如下: