草庐IT

WSA_IO_PENDING

全部标签

PHP + socket.io( session 、授权和安全问题)

我有一个工作的php应用程序,我想在其中添加实时支持。我想使用nodejs/socket.io来添加这种功能。我发现的第一个问题是如何在nodejs端正确授权用户(用户已经通过PHPsession在php后端进行了身份验证)。在nodejs端使用socket.handshake.header.cookie我可以解析并获取PHPsessionID,我可以通过redis/memcache/database进行身份验证(取决于我用来保存session信息的内容)。当用户只打开网站的一个选项卡/窗口时,一切看起来都很酷-当拥有更多并使用session_regenerate_id()时,在nod

node.js - 如何调试 Node + Socket.io CPU 问题

我们正在使用Express3运行NodeSocket.io服务器。使用Forever监控服务器.服务运行良好,但CPU整天都在增长,直到达到90%+,然后突然回落到~20%,如下图所示。我相信这个下降是由于永远重启应用造成的。我想知道的是;可能导致Node.js应用出现这种行为的典型因素有哪些?有哪些工具/方法可用于调试Node应用程序中的内存泄漏/cpu占用?我认为这可能与Socket.io在用户断开连接后不清理资源有关,尽管文档说Socket.io会自动管理这个。任何帮助将不胜感激,这个问题使管理我们的服务器变得非常困难。我一周前在Serverfault上发布了这个问题,但没有收到

jquery - Nodejs & 套接字 io : warn - error raised: Error: listen EADDRINUSE

我正在尝试使用socket.io的Node.js现在这是我的场景,我是ubuntu12.04用户,我在桌面上有文件夹pp我在里面放了服务器文件,即app.js这里是内容varfs=require('fs'),http=require('http'),socketio=require('socket.io');varserver=http.createServer(function(req,res){res.writeHead(200,{'Content-type':'text/html'});res.end(fs.readFileSync(__dirname+'/index.html'

javascript - 全局未在 ../node_modules/socket.io-parser/is-buffer.js 中定义

提前感谢您帮助我。我正在尝试在我的一个Angular组件中连接套接字,但在浏览器的控制台中它会抛出一个错误,指出全局未定义在Object../node_modules/socket.io-parser/is-buffer.js这是我的home.component.tsimport{Component,OnInit}from'@angular/core';import*as$from'jquery';import*asiofrom'socket.io-client';@Component({selector:'app-home',templateUrl:'./home.component

node.js - Socket.io:如何使用 Socket.io-redis 适配器计算房间中的客户端

我开始使用Socket.io构建聊天服务器有多个Node。它使用Socket.io-redis将所有服务器连接在一起和rooms用于消息传递。当客户端与服务器连接时,我将客户端加入某个房间。io.on('connection',function(socket){socket.join("CLIENT_1");});所以我想获取连接到房间"CLIENT_1"的客户端数量,io.sockets.adapter.rooms["CLIENT_1"];但我只从当前进程获得连接。如何从通过redis适配器连接的所有服务器进程获取连接?我已经解决了这个问题:Howtochecksocketisali

node.js - socket.on ('connection' ... 事件从未触发 nodejs + express + socket.io

问题socket.io不工作详情用express[文件夹]生成了一个项目;cd[文件夹];npm安装;设置socket.ionpminstallsocket.io使用以下代码运行Node应用程序客户端connect事件触发,但服务器connection从未触发。设置服务器AWS免费套餐、Ubuntu11.10、ami-a7f539cenodejsv0.6.5expressv2.5.1socket.iov0.8.7客户varsocket=io.connect('http://example.com:3000');socket.on('connect',function(){console

javascript - Socket.io 无法连接,求助于 "polling"

我正在尝试创建一个websocket客户端-服务器应用程序,其中客户端和服务器将在两个不同的实例上运行。设置服务器/后端:在localhost:9006上运行angular-fullstackgenerator包括socket.io客户端/前端:在localhost:9007上运行angulargenerator+socket.io-client+btford.socket-io(AngularJSsocket.io桥)服务器注意:不是完整的代码,但我认为相关的部分。//-----socketio.js-----//Whentheuserconnects..performthisfun

javascript - socket io 房间名称和特定房间内的用户数量

我正在尝试使用socket.io版本构建一些基本聊天(基于房间):"socket.io":"^2.1.1""socket.io-client":"^2.1.1"我有一些基本问题,无论我如何寻找它们,都找不到任何有效的答案。当用户进入特定房间时,我正在这样做(在服务器中)socket.join(roomName)所以只有当至少有一个套接字连接到这个房间时,房间才“存在”?我想创建一个包含房间名称和参与人数的屏幕-(是否可以通过客户端socketIO的对象获取它?),我发现可以获取房间名称(服务器端)通过使用io.sockets.adapter.rooms但我得到了非常奇怪的字符串,这些字

node.js - 如果 nodejs 使用非阻塞 IO,那么 fs.readFileSync 是如何实现的?

我在filesystemlibrary中看到了很多同步函数.例如fs.readFileSync(filename,[options])。如果Node具有异步/非阻塞IO且没有sleep方法,这些功能是如何(以及为什么)实现的-我可以使用相同的机制来实现其他同步功能吗? 最佳答案 fs.readFileSync()实际上只是一个包装器fs.readSync()功能。所以问题是fs.readSync()与fs.read()相比是如何实现的。如果您查看这两个函数的实现,它们都利用了绑定(bind)模块。在这种情况下,它被初始化为varbi

node.js - socket.io 发出多次

我有一个非常基本的例子。这个问题之前已经在堆栈溢出本身中被多次问过,但我无法得到正确的答案,所以我将使用这个基本示例。服务器:varapp=require('express')();varserver=require('http').Server(app);vario=require('socket.io')(server);server.listen(3000);app.get('/',function(req,res){res.sendfile(__dirname+'/index.html');});io.on('connection',function(socket){socke