Tag: 套接字

一线检查sockets是否在给定的房间?

我使用Node.js和socket.io进行多人纸牌游戏,并且有一些玩家可以join的游戏室。 join一个房间,我只是使用: io.sockets.on('connection', function (socket) { socket.on('joinRoom', function (gid) { //gid is game ID – create room name based on this and join the room var room = 'game'+gid; socket.join(room); }); }); 我的问题是,检查套接字是否连接到某个房间的最快方法是什么? 我知道我可以在数组中find所有的套接字,然后检查目标套接字是否在数组中,但我猜应该有一个更基本的语法。 我正在寻找(在伪代码)将是 if(socket with ID "z8b7dbf98i" is in room "game10") //do something

什么时候发生了nodejs net模块中的“连接”事件?

我有这个简单的TCP服务器: var net = require('net'); var server = net.createServer(function (socket) { socket.on('connect', function() { console.log("New client!"); }); }); server.listen(8000, function(){ console.log("server running…") }); 然后我有另一个文件client.js : var net = require('net'); var client = net.connect({port: 8000}, function() { console.log('client connected'); }); client.on('error', console.error); 我在一个terminal窗口中运行服务器,然后在其他窗口中运行客户端,并希望看到服务器日志“新客户端”。 虽然,这并没有发生。 那么,什么时候“连接”事件准确发射?

在Mac上停止node.js进程

我有一个node.js应用程序使用一些套接字端口。 有时,当我用Ctrl + C退出应用程序时,某种节点进程仍在运行,仍然分配套接字端口。 因此,我无法重新启动我的应用程序,因为它无法打开这些端口。 当我看到ps的情况,我得到以下回应: $ ps PID TTY TIME CMD 40454 ttys000 0:00.11 -bash 41643 ttys001 0:00.00 (node) 41741 ttys001 0:00.00 (node) 试图kill -9 41643不会杀死进程。 这是一种不可抗拒的僵尸吗? 我怎样才能摆脱阻塞我的tcp端口的(节点)?

来自JavaScript的PostgreSQL套接字(HTML5)

我正在寻找直接连接的选项 – 无需Web服务器或中间件 – 从Web浏览器客户端使用JavaScript连接到PostgreSQL服务器。 在github上,我发现了三个项目: node_postgres 节点的Postgres Postgres的-JS 他们似乎都早,但至less有点积极的发展。 他们都做大致相同的事情吗? 他们甚至在做什么? 有没有人有任何经验,可以推荐一个比其他人?

通过Nodejs的TLS套接字连接

我试图build立一个TLS套接字连接到chat.facebook.com端口:5222通过Nodejs。 我使用下面的代码: var a=require('tls'); var b=a.connect(5222,'chat.facebook.com',function(){console.log("connected");}); b.on('error',function(error){console.log(error);}) 但它没有得到连接,而是给出了一个错误: [Error: 140089045411648:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:683:] 我尝试了与encrypted.google.com:443类似的连接,并且控制台很容易地发起了“连接”。 有人能指导我什么,我已经失踪或可以做些什么来克服这个问题。

NodeJS,OpenCV和stream媒体图像使用networking套接字

我的最终目标是将video从笔记本电脑传输到服务器。 我试图通过在笔记本电脑和服务器上使用NodeJs来实现这一点。 我使用OpenCV库来捕获笔记本电脑上的video,并将其保存为jpg文件。 然后我读取文件并将其转换为base64,以便我可以使用Node中的Net.socket模块来传输它。 这是一个连续的过程:捕获,编码和发送。 这里是传输一个jpg文件的服务器代码: var cv = require('opencv'); var fs = require('fs'); var net = require('net'); var camera = new cv.VideoCapture(0); var server = net.createServer(); server.listen('50007', '127.0.0.1'); server.on('connection', function(socket){ camera.read(function(image){ image.save('original.jpg'); fs.readFile('original.jpg', 'base64', function(err, image){ socket.write(image, 'base64', function(){ socket.end(); }); }); }); }); 在客户端循环,直到从服务器接收到FIN。 这里是客户端代码: var net = require('net'); var fs = require('fs'); […]

将一个Socket.iostream连接到节点replstream

我用socket.io创build了一个快速的应用程序。 现在我想要一个浏览器terminal与我在节点中创build的repl连接。 这是我想出来的 var io = io.listen(server); var sessionSockets = new SessionSockets(io, sessionStore, cookieParser); sessionSockets.on('connection', function (err, socket, session) { var stream = createStream(socket); var replInstance = repl.start({ prompt: "> ", input: stream, output: stream }); repls[socket.id] = replInstance; }); var createStream = function(socket) { var stream = new Stream(); stream.readable = true; stream.resume = […]

连接+ SessionSocket.io +护照:无法通过密钥查找会话

我在我的应用程序中使用connect , passport和session.socket.io模块。 在session.socket.io的connection事件中,我收到一个错误: could not look up session by key: connect.sid 情况就像这样 我的服务器端代码是: var mod_http = require('http'); var mod_connect = require('../../lib/node_modules/connect'); var mod_connectRoute = require('../../lib/node_modules/connect-route'); var mod_ejs = require('../../lib/node_modules/ejs'); var mod_SessionSockets = require('../../lib/node_modules/session.socket.io'); var mod_passport = require('../../lib/node_modules/passport'), LocalStrategy = require('../../lib/node_modules/passport-local').Strategy; var mod_fs = require('fs'); var app = mod_connect(); var cookieParser = mod_connect.cookieParser('your secret sauce'), […]

在使用Angular的单页面应用程序引擎时,依靠socket.io/express.io中的“disconnect”事件

当我离开被单页面应用程序引擎拦截的页面时,如何添加“断开连接”事件? 我设置了某些事件(有点像YouTube上的stream媒体事件),每个事件都需要自己的套接字连接。 我现在在Angular上设置了一个单页面引擎,可以在这些事件之间切换。 我曾经依靠“断开连接”事件让我知道什么时候有人离开了事件,但他们不再工作 – 如果我通过单页导航离开,套接字永远不会closures。 有什么办法来configuration套接字仍然断开? 我不太理想的方法是在每个页面的控制器上创build一个套接字连接的新实例,我可以从事件页面导航到该页面,并禁止多个连接。 如果有人有一个更好的主意,我很乐意听到它。 非常感谢。

Express 4.0中的Heroku socket.io示例错误

所以我试图使用示例heroku应用程序: https : //github.com/lstoll/socket-io-chat-heroku作为模板来build立我自己的socket.io应用程序,但我运行在Express 4.0,节点0.10.x和Socket.io 0.9.16。 现在的问题是,当我运行我的服务器,一切都很好,但是当我运行我的客户端,我得到以下错误: Uncaught ReferenceError: require is not defined socket.io.js:12 Uncaught ReferenceError: io is not defined chat2:2 我的相关服务器代码如下所示: var app = express(); var http = require('http'); var server = http.createServer(app); var sio = require('socket.io'); var port = 3000 || process.env.PORT; server.listen(port); var io = sio.listen(server); io.sockets.on('connection'), function(socket) { … }); 在我的客户端,我有以下几点:我已经尝试了两个(顺便说一下,这是玉器): […]