草庐IT

m_socket

全部标签

javascript - 通过 socket.id 向客户端发送消息

当用户的套接字id直接存储在io.sockets.on('connect')函数中时,我似乎只能向用户发送消息。我不知道为什么在他们登录后尝试存储他们的套接字id时它不起作用。工作:varclients={};/**Anewsocketconnectionhasbeenaccepted*/io.sockets.on('connection',function(socket){//Usedtoaccesssessionidvarhs=socket.handshake;clients[socket.id]=socket;//addtheclientdatatothehashusers['b

node.js - Windows 7 32 位上的 Socket.io 安装失败

Iinstallednode.jsv0.8.22andtriedtoinstallsocket.ioinWindows732bitSocket.ioinstallationfailsconsecutively.Consolelogis:C:\ProgramFiles\nodejs>npminstallsocket.ionpmhttpGEThttps://registry.npmjs.org/socket.ionpmhttpGEThttps://registry.npmjs.org/socket.ionpmhttp200https://registry.npmjs.org/socket.

javascript - socket.io:客户端发出回调永远不会触发

只是为了概念验证而搞乱socket.io,到目前为止一切都很好,除了我无法让我的发出回调在客户端工作。我必须在这里遗漏一些愚蠢的东西,但目前文档并不是killer。服务器接收“getSomeData”事件就好了,没有任何错误。根据我在客户端socket.io源代码中的信息,它会检查要发出的最后一个参数是否是一个函数,并始终将其用作回调,但比这更深入的调试对我来说是个问题。我觉得我必须在这里遗漏一些核心概念。这不是this.send(..)应该做的吗?我在示例应用程序中只能找到1个用法,而在该事件发射的客户端代码可用的地方却没有。更新:为了清楚起见,我实际上是故意在客户端发出事件。这样做

javascript - 没有 node.js 服务器的客户端 socket.io

要在客户端使用socket.io,通常我们启动一个node.js服务器,然后这样:或使用特定端口:问题是:是否需要使用node.js服务器来服务socket.io.js?...或者是否有可能制作一个socket.io.js的本地副本,而不是每次我们需要socket.io时都去服务器?就像,我们去查看源代码并复制我们从脚本标签源获得的所有内容,粘贴并保存为socket.io-local.js,以便我们下次使用:这行得通吗?更新感谢大家的好评,我问这个是因为在我参与的情况下,我实际上没有访问服务器的权限:我正在编写客户端以连接到其他开发人员用Java编写的SocketSever。因此,我必

node.js - 使用 socket.io 配置 Express 4.0 路由

我创建了一个新的Express应用程序。它为我生成了app.js,然后我创建了以下index.js,引入了socket.io:varapp=require('./app');server=app.listen(3000);vario=require('socket.io');varsocket=io.listen(server,{log:false});socket.on('connection',function(client){console.log('socketconnected!');});谁能告诉我如何在路由文件中访问socket.io?供引用,默认生成的app.js如下:

javascript - node.js - 使用 Helm 的 socket.io(网络套接字)的正确内容安全策略

我正在尝试在Node服务器中实现内容安全策略(CSP),但在设置socket.io时遇到了问题。看起来我在下面的代码中错误地设置了connectSrc。有人可以建议设置Helm的正确方法,以便浏览器允许网络套接字连接吗?提前致谢!我正在使用Helm模块来生成CSP;以下是设置CSP的代码:securitySetup=function(app){varconnectSources,helmet,scriptSources,styleSources;helmet=require("helmet");app.use(helmet());app.use(helmet.hidePoweredBy

node.js - socket.io - 第一次工作,而不是第二次

当我启动我的node.js服务器并连接客户端时,我能够从客户端(socket.emit)发送请求并获得响应(socket.on('rentsAround'....))。但是当我第二次连接时,客户端可以发送,但服务器不能发送或发送。所以我必须再次重新启动服务器。我知道它按预期工作,但不知何故我的理解在某个地方是错误的......请有人指出。客户端:========varsocket=newio.Socket();socket=io.connect();socket.on('rentsAround',function(data){registration.handleRentsAround

node.js - Socket.io 在 Express Route 上发出

我想在调用某些API路由时向客户端发送一些数据。我必须遵循server.js上的代码varapp=express();varhttp=require('http').Server(app);vario=require('socket.io')(http);io.on('connection',function(socket){console.log('auserconnected');socket.emit('tx','msg');socket.on('disconnect',function(){console.log('userdisconnected');});});现在我有这条

javascript - Node.js + Socket.io 超出最大调用堆栈大小

对于我的Node应用程序,我有一个在Debian上运行的服务器(app.js),它使用socket.io为我的客户端(index.html)提供html和websocket数据。我正在尝试制作一款基于回合制的HTML5多人游戏。在使用socket.emit()/io.emit()和socket.on()执行多次成功的数据传输后,我的服务器在socket.emit()调用时崩溃并出现错误"events.js:72throw者;//未处理的“错误”事件RangeError:超出最大调用堆栈大小”。我有很多socket.on()事件监听器,每个监听器都处理游戏中的不同功能(例如roll_di

node.js - Node JS : How can I create a fake tcp socket for testing servers

我正在尝试对我的服务器代码(非http、自定义协议(protocol))进行单元测试。我需要创建一个模拟双工套接字,我可以异步发送消息并从中接收消息。我在从事件流readArray和writeArray创建双工流方面取得了一些成功,但readArray需要预先准备好数据,并且writeArray在流结束之前不会触发。我需要随着时间的推移进行测试。理想的解决方案是将两个双工套接字链接在一起。是否有任何现有的解决方案?我宁愿不必求助于初始化一个实际的服务器来测试它。 最佳答案 NodeMitm实际上可以做到这一点。它不仅可以拦截和模拟H