Tag: ruby on rails 4

无法创build与Node.js socket.io服务器的跨域websocket连接

根据我的search,这不应该那么辛苦,到目前为止我已经尝试了许多没有运气的东西。 我有一个在Heroku上运行的Node.js服务器,它创build了一个socket.io服务器(我也曾尝试在Nodejitsu上托pipe它,但没有帮助)。 socket.io套接字连接没有问题,如果我从实际的Node.js服务器,我想创build一个websocket连接的服务页面,但我不能使任何我的跨域套接字连接尝试工作。 我试图做一个跨域连接到这个socket.io服务器几种方式: (1)一个简单的本地HTML文件,其中包含一些脚本,用于从节点服务器(使用$ .getScript)成功获取客户端socket.io库,然后尝试创build套接字连接(var socket = io.connect('nodejs_server_hostname:port_num ');),失败。 (2)在本地运行Rails应用程序服务器(开发模式),为包含JavaScript的客户端提供响应,尝试以与方法(1)相同的方式形成websocket连接,并且失败 (3)在Heroku中托piperails应用程序,并执行与方法(2)相同的操作。 这也失败了。 我确保按照Heroku文档( https://devcenter.heroku.com/articles/heroku-labs-websockets )中的说明启用websockets。 如果请求是从客户端尝试与之build立socket.io连接的实际的Node.js服务器提供的,那么一切都可以正常工作。 所有三次尝试都会触发socket.socket.on('error')事件。 我已经尝试使用以下代码修改rails应用程序中的http响应头文件: response.headers['Access-Control-Allow-Origin'] = '*' 这正确地设置标题(我从轨道服务器请求页面后检查),但它不修复套接字连接问题。 我在执行日志logging的Node.js服务器上创build了一个socket-io授权callback函数,看起来这个callback函数根本就没有碰到跨域套接字连接尝试。 所以看起来Node.js服务器甚至从来没有看到websocket连接尝试,这对我来说是相当混乱的。 下面我将粘贴所有相关的代码文件。 Node.js服务器文件: var http = require('http'), express = require('express'), whiskers = require('whiskers'), redis = require('redis'), port = process.env.PORT || 5000, app = express(), server = http.createServer(app).listen(port), io = require('socket.io').listen(server); console.log('—- […]

socket.io/?EIO=3&transport=polling&t=1345678不收费

我使用node.js,express和socket.io进行了聊天。 这是app.js代码: var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(process.env.PORT || 8080); app.use(express.static(__dirname + '/')); io.on('connection', function(socket){ socket.on('message sent', function(data){ io.emit('receive', { msg: data.msg, uname: data.uname, uid: data.uid, uimg: data.uimg }); }); socket.on('message sent room', function(data){ console.log(data.mid); io.in(data.uroom).emit('receive', { msg: data.msg, uname: data.uname, uid: data.uid, uimg: data.uimg, mid: data.mid […]