Tag: socket.io

Socket.io错误挂钩到express.js

我试图把socket.io和express.js挂在一起: var socket = require('./socket_chat/socket.js'); var express = require('express'), app = module.exports.app = express(); var io = require('socket.io').listen(app); app.use(express.static(__dirname + '/app')); io.sockets.on('connection', socket); 在这行: var io = require('socket.io').listen(app); 我收到一个错误: Error: You are trying to attach socket.io to an expressrequest handler function. Please pass a http.Server instance. 这个错误似乎没有任何关于SO / google的内容

SocketIO ERR_CONNECTION_REFUSED

我开始使用NodeJS和Socket.IO。 我正在尝试使用NodeJS http服务器设置一个基本示例,并build立到服务器的Socket.IO连接。 我也使用angularJS和基本上我想要的是,当用户按下button,然后build立到服务器的连接。 但是,当我尝试它时,我得到这个错误 GET http://localhost/socket.io/?EIO=2&transport=polling&t=1404288173776-3 net::ERR_CONNECTION_REFUSED 这是我的代码: server.js var http = require('http'); var server= http.createServer(handler); var io = require('socket.io')(server); server.listen(8080); function handler(req, res) { res.writeHead(200); res.end('Hello Http'); } io.on('connection', function (socket){ socket.emit('news', { hello: 'world' }); console.log('connected!'); }); app.js var app = angular.module('testApp', ['ngRoute']); app.controller('TestCtrl', function ($scope){ $scope.msg= ""; $scope.try = function (){ […]

我可以通过socket.emit发送多less数据?

所以我使用node.js和socket.io。 我有这个小程序,接受一个文本框的内容并将其发送到node.js服务器。 然后,服务器将其中继到其他连接的客户端。 有点像聊天服务,但不完全。 无论如何,如果用户input2-10k的文本并尝试发送该文本呢? 我知道我可以尝试一下,看看自己,但我正在寻找一个实际的,最佳实践的限制,我可以通过排放多less数据。

Node.js http-proxy会丢弃websocket请求

好吧,我已经花了一个多星期的时间来试图解决这个问题,所以如果有人有线索,你是一个英雄。 这不是一个容易回答的问题,除非我是一个笨蛋。 我正在使用node-http-proxy将粘性会话代理到运行在不同端口上的16个node.js worker。 我使用Socket.IO的Web套接字来处理一堆不同types的请求,并使用传统的请求。 当我通过node-http-proxy将服务器切换到代理服务器时,有时出现了一个新问题,我的Socket.IO会话无法build立连接。 我从字面上不能稳定地重现它的生活,唯一的方法就是把它从多个客户端扔到服务器很多的stream量。 如果我重新加载用户的浏览器,它有时可能会重新连接,有时甚至不能。 粘滞的会话 我必须代理粘性会话,因为我的应用程序在每个工作人员的基础上进行身份validation,所以它根据Connect.SID cookie(我正在使用connect / express)路由请求。 好的,一些代码 这是我的proxy.js文件,它运行在节点中并路由到每个worker: var http = require('http'); var httpProxy = require('http-proxy'); // What ports the proxy is routing to. var data = { proxyPort: 8888, currentPort: 8850, portStart: 8850, portEnd: 8865, }; // Just gives the next port number. nextPort = function() { […]

Chrome和Safari恢复到xhr轮询,而不是与socket.io的websockets

我有一个websockets和socket.io的问题。 当我尝试使用socket.io连接到我的节点服务器时,它最初使用websockets连接,但在不久之后恢复为jsonp-polling。 这是我连接时节点服务器的输出: 8 Jun 07:01:15 – Initializing client with transport "websocket" 8 Jun 07:01:19 – Initializing client with transport "jsonp-polling" 8 Jun 07:01:19 – Client 16630339180119336 connected 这发生在Chrome浏览器和Safari。 我已经更新到最新的socket.io版本0.6.17,并运行节点0.4.7。 我曾尝试删除我的cookie和cachingbuild议在github和SO,但问题依然存在。 此外,当我尝试强制websockets它永远不会完全连接到一个会话ID。 有没有人有任何想法?

Socket.io和Heroku上的多个Dyno Node.js应用程序。 WebSocket在连接build立之前closures

我正在构build一个部署到使用Websockets的Heroku的App。 当我只使用1个dynamic码时,websockets连接正常工作,但当我缩放到大于1时,出现以下错误 POST http://****.herokuapp.com/socket.io/?EIO = 2&transport = polling&t = 1412600135378-1&sid = zQzJJ8oPo5p3yiwIAAAC 400(Bad Request)socket.io-1.0.4.js:2 WebSocket连接到'ws://****.herokuapp.com/socket.io/?EIO = 2&transport = websocket&sid = zQzJJ8oPo5p3yiwIAAAC'失败:WebSocket在连接build立之前closures。 socket.io-1.0.4.js:2 我正在使用Redis适配器来启用多个Web进程 var io = socket.listen(server); var redisAdapter = require('socket.io-redis'); var redis = require('redis'); var pub = redis.createClient(18049, '[URI]', {auth_pass:"[PASS]"}); var sub = redis.createClient(18049, '[URI]', {detect_buffers: true, auth_pass:"[PASS]"} ); io.adapter( redisAdapter({pubClient: pub, subClient: sub}) […]

Android应用程序使用Socket.io连接到Node.js服务器

我无法让我的Android应用连接到socket.io聊天服务器。 我使用Gottox创build的socket.io-java-client,可以在这里find: https : //github.com/Gottox/socket.io-java-client 服务器通过端口7000本地运行。我正在使用android模拟器,所以我使用10.0.2.2:7000来访问服务器。 任何帮助将不胜感激,我没有太多的SSL经验。 如果我find一个工作解决scheme,我也会发布它。 Node.js服务器 var express = require('express'); var app = express(); var server = require('http').createServer(app).listen(7000); var io = require('socket.io').listen(server); io.sockets.on('connection', function(client){ client.on('message', function(err, msg){ client.broadcast.emit('message', msg); }); }); 的package.json { "name": "simplechat", "version": "0.0.1", "main": "app.js", "dependencies": { "express" : "~4.0.0", "socket.io" : "~0.9.13" } } Android:SendMessageActivity public class […]

是否可以在node.js服务器上设置一个运行(服务器端)的socket.io客户端?

我想在两个或多个不同的node.js应用程序服务器之间启用基于套接字的p2p通信。 我使用socket.io来处理给定的服务器和它所服务的Web应用程序之间的所有这种通信 – 但是我正在寻找的是一种沟通服务器到服务器的方式。 我最初认为它会像这样简单: var io = require("socket.io"); var socket = io.connect("my remote endpoint"); 但是,事实certificate,服务器端的socket.io实现不提供“连接”方法,只有一个监听方法。 为什么是这样? 为什么我不能将节点应用程序服务器作为运行在别处的socket.io服务器的客户端? 有什么办法可以实现这个function吗?

SocketIO缩放架构和大型机房要求

我们在一个大型聊天应用程序上使用socketIO。 在某些情况下,我们希望向所有其他用户发送“状态”(用户可用性)。 io.in('room1').emit('availability:update', {userid='xxx', isAvailable: false}); room1可能包含很多用户(最多500个)。 当许多可用性更新被触发时,我们观察到NodeJS负载的显着提升。 这个想法是使用与Socket IO类似的Redis存储。 让Web浏览器客户端连接到不同的NodeJS服务器。 当我们想要发射到一个房间时,我们使用Redis PubSub ZeroMQ甚至RabbitMQ将“发射到房间1”的有效载荷分配给所有其他的NodeJS进程。 每个进程都会自己调用他自己的io.in('room1').emit 。 对这种设置的关注之一是进程间的通信可能变得相当繁忙,我想知道它是否会在未来成为一个问题。 这是我想到的架构。

socket.io – 'connect'事件不会在客户端触发

我正在尝试开始使用node.js和socket.io。 我有一个非常( 非常 )简单的客户端服务器testing应用程序,我不能让它工作。 该系统设置在一台带有apache服务器的Windows机器上。 apache在port 81上运行,而socket.io被设置为监听port 8001 服务器 – server.js var io = require('socket.io').listen(8001); io.sockets.on('connection', function (socket) { console.log('\ngot a new connection from: ' + socket.id + '\n'); }); 客户端 – index.html <!DOCTYPE html> <html> <head> <title>node-tests</title> <script type="text/javascript" src="http://localhost:8001/socket.io/socket.io.js"> </script> <script type="text/javascript"> var socket = io.connect('http://localhost', { port: 8001 }); socket.on('connect', function () […]