Tag: socket.io

在控制器中使用socket.io

我只需要socket.io发送消息给客户端,如果一个新的对象被插入到数据库。 所以我的想法是直接从我的控制器的插入方法发出消息。 在我的server.js文件中,iam创buildsocket.io对象,并尝试使其可用于其他模块: var server = require('http').createServer(app); var io = require('socket.io').listen(server); //make socket io accessible for other modules module.exports.io = io; 在我的控制器我尝试使用socket.io这种方式: var io = require('../server').io; … io.sockets.on("connection", function(socket){ passportSocketIo.filterSocketsByUser(io, function (user) { return user.workingAt === socket.handshake.user.workingAt; }).forEach(function(s){ s.send("news", insertedObject); }); }); 而这里我卡住了。 “连接”事件永远不会被触发,所以消息不会被发射。 这是在单独的文件中使用socket.io的正确方法吗? 不幸的是我找不到复杂的socket.io例子。

使用node.js和socket.io创build密钥之间的私人聊天

如何使用node.js和socket.io向共享conversation_id的私人聊天中的所有用户发送消息? var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); conversations = {}; app.get('/', function(req, res) { res.sendfile('/'); }); io.sockets.on('connection', function (socket) { socket.on('send message', function (data) { var conversation_id = data.conversation_id; if (conversation_id in conversations) { console.log (conversation_id + ' is already in the conversations object'); // emit the message […]

io.emit vs socket.emit

我是socket.io的新手,并且遇到了一些看起来很奇怪的事情。 我实际上并不知道socket.emit和io.emit之间的socket.emit ,但我无法在任何地方find解释。 io.on('connection', function(socket){ io.emit('connected') // <<<< HERE >> socket.emit('connected'); socket.on('disconnect', function(){ io.emit('disconnect') }); socket.on('chat message', function(msg){ io.emit('chat message', msg); }); }); server.listen(3000); 这是我的服务器的东西,但是当我更改io到socket该消息只有当连接的用户连接显示。 io.emit将消息发送给所有用户。 也许它应该是这样的,也许它只是一些可怕的黑客? 让我知道你是否需要客户端的HTML。

更改Socket.IO静态文件服务path

我正在一个基本的HTTP服务器(没有expression或连接或类似的东西)的节点服务器上使用Socket.IO。 默认情况下,Socket.IO服务于客户端文件 /socket.io/socket.io.js 我希望能够改变这个基地的path,像其他的东西 /foo/bar/socket.io/socket.io.js 有没有任何内置的方式来做到这一点,或者没有改变Socket.IO的代码的任何方式? 我认为答案在于Static模块( require('socket.io').Static) ),但是我自己编写代替默认的缺点,我没有办法去改变行为方式。 我怎样才能做到这一点?

如何安装Node.js,npm,socket.io并使用它们?

我是Node.js的新手 有人可以解释我怎样才能一步一步安装Node.js,npm和socket.io。 谢谢。

Socket.IO服务器性能和带宽使用情况

我即将在本地计算机上托pipe一个小型套接字服务器,我想知道它将使用什么样的带宽。 在大多数日子里,一次不会有超过50个客户连接,但是一周一次或两次,一次可以有多达5000个客户。 但是,唯一发送的消息将是一次偶然的单个消息给所有连接的客户端,而不需要额外的数据或任何东西。 服务器是否会导致其托pipe的计算机的性能显着下降,或者放慢了我的网速? Server.js: var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(8001); function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); } io.sockets.on('connection', function (socket) { socket.on('SendDefault', function(data) { socket.broadcast.emit('GetDefault'); }); }); Client.js: setTimeout( […]

socket.io客户端连接断开连接

我无法弄清楚为什么多次断开/连接一个socket.io连接不起作用? 服务器端代码: io.on('connection', function(socket){ console.log('a user connected'); socket.on('disconnect', function(){ console.log('user disconnected'); }); }); 客户端代码: var socket = io(); socket.on('connect', function() { console.log("connected from the client side"); }); $('#connect_button').click(function(){ socket.connect(); }); $('#disconnect_button').click(function(){ socket.disconnect(); }); 它断开连接。 但不重新连接。 我使用的是Socket.io 1.0。 请帮忙。

Socket.IO – require没有被定义

我试图让socket.io工作,但现在在Chrome我得到的错误: 未捕获的ReferenceError:require是未定义的 client.php:9Uncaught ReferenceError:io没有定义 我改变了包含socket.io.js文件的方式,因为它存在一些其他的东西: <script src="/node_modules/socket.io/lib/socket.io.js"></script> 如果我尝试 <script src="/socket.io/socket.io.js"></script> 我得到: 无法加载资源:服务器响应状态为404(未find) 这是Ubuntu的最新的一切 我使用来自http://socket.io/的服务器代码来处理像client.php这样的文件夹,这个文件夹的名字是server.js,只是修改过的端口。

每五分钟计划一次Node.js作业

我是node.js的新手 我需要node.js每五分钟查询一次mongodb,获取特定的数据,然后使用socket.io,允许订阅的Web客户端访问这些数据。 我已经设置了socket.io部分,当然还有mongo,我只需要知道如何让node.js每五分钟运行一次,然后发送到socket.io。 什么是最好的解决scheme? 谢谢

Memory.orem.MemoryStore不返回会话?

设置会话并在php中使用它们非常简单。 但是我的网站需要处理websocket。 我面临着在node.js中设置会话的问题。 我可以轻松地推送数据,而不使用会话,它可以正常工作,但是当打开多个选项卡时,会创build新的socket.id,并且之前打开的选项卡将无法正常工作。 所以我一直在研究会议,并有问题访问会话存储,其logging会话不抓住。 我已经尝试与session.load以及但没有运气 我如何获取会话对象,并以打开其他选项卡不会影响function的方式使用它,并将所有选项卡上的数据从服务器推送到客户端? var express=require('express'); var http = require('http'); var io = require('socket.io'); var cookie = require("cookie"); var connect = require("connect"), MemoryStore = express.session.MemoryStore, sessionStore = new MemoryStore(); var app = express(); app.configure(function () { app.use(express.cookieParser()); app.use(express.session({store: sessionStore , secret: 'secret' , key: 'express.sid'})); app.use(function (req, res) { res.end('<h2>Hello, your session […]