Tag: websocket

Websocket传输不能在我的Firefox / Chrome(Windows版本)上运行

我在Windows上使用最新版本的Firefox / Chrome来testing我的应用程序(使用socket.io)。 但websocket传输不起作用,在浏览器控制台它发送消息,显示它支持WebSocket,xhr-polling …但它不起作用,然后后备使用其他人(大约10s以后)。 我把源代码运行在Ubuntu上(在一个虚拟机上),并在Firefox上testingFirefox / Chrome,它可以很好的与websocket一起工作。 然后我尝试使用Windows版本的2浏览器在Ubuntu上testing服务器,websocket不起作用(与Windows上的服务器相同),然后回退。 所以我认为问题是我的Windows或Firefox / Chrome上。 我不知道为什么:这是否发生在使用Windows的其他计算机或Windows防火墙出现问题? 更新:Websocket在Windows上的Safari中工作。 我试图卸载Firefox和Chrome,它仍然无法正常工作。 我试过了,它可以在其他Windows 7电脑(我的朋友和VM)上工作。 我的Windows 7一定有一些问题。

我如何声明一个variables,任何客户端可以使用socket.io访问

这是一个游戏应用程序,我用我的大部分肮脏工作的MySQL,但我希望在这里轻量级的解决scheme。 我注意到我可以声明socket.clientid和每次客户端发射到我的服务器我可以使用socket.clientid 有没有办法像(从来没有尝试过这样)声明一个variables“io.sockets.doors = [1,0,1]”代表一个closures的门#1打开的门#2closures的门#3,并允许每个人访问一个从我的服务器的内存单个数组? 如果是的话有文件? 我的服务器在node.js中运行socket.io客户端通过浏览器中的websockets进行连接

铬在WebSocket握手期间得到新的错误

有通过haproxy运行的node.js websockets,并且已经成功运行了好几个月。 现在现在给错误 Error during WebSocket handshake: 'Connection' header value is not 'Upgrade' 相同的代码/设置仍然在开发计算机上工作 任何想法/build议,不胜感激! Firefox正常工作! 来自主服务器的铬错误,但工作正常本地

一旦以前的失败尝试连接Socket.io事件不会触发

这里是场景,我有一个客户端应用程序,由PHP服务于node.js + socket.io应用程序的不同服务器上。 它可以连接和接收从服务器发送的广播。 如果连接断开,应用程序将回退到轮询数据库(使用setInterval() )。 它试图每5轮投票重新连接一次,它可以成功地重新连接并继续接收消息。 我的问题发生在用户加载页面和节点服务器无法到达(我把它closurestesting),然后打开服务器,并在5轮询,它成功地连接到服务器,使用socket.socket.reconnect(); 。 但是,只要服务器广播消息,它就不会触发事件。 请注意,这不会发生在手机上testing(回落到不同的套接字方法) 我已经看到在这里find的问题重新连接socket.io问题在'socket.on('消息',函数(){})` ,但套接字之前没有连接,所以我不认为这可能是会议? 编辑:我将socket.socket.reconnect()更改为socket.socket.connect() ,它解决了这个问题。 如果有人能解释为什么这个作品我想知道的原因。 我知道它是因为服务器实际上没有重新连接,但是想要更多的信息。 谢谢。

如何测量被socket.io内部传输的数据大小

我们知道socket.io不会传输二进制文件。 当我们通过socket.io发送二进制(二进制string)数据时,它会转义并发送给服务器。 我需要多less大小这样的方式添加到二进制string的实际大小,并比较它和base64编码的string大小。 我正在做的是使用socket.io上传文件,我见过很多base64的例子,增加了大约33%的文件大小。 我正在寻找一种安全的方式来上传由socket.io支持的所有浏览器支持的文件,而不会增加大的尺寸。 我知道Websockets传输二进制文件,但问题是与IE8 IE9。 因此,我正在研究二进制string传输。 谢谢

将getusermedia插入到基于node.js和socket.io的聊天引擎

我有这个代码运行 客户端: $(function(){ var iosocket = io.connect(); iosocket.on('connect', function () { $('#incomingChatMessages').append($('<li>Connected</li>')); iosocket.on('message', function(message) { $('#incomingChatMessages').append($('<li></li>').text(message)); }); iosocket.on('disconnect', function() { $('#incomingChatMessages').append('<li>Disconnected</li>'); }); }); $('#outgoingChatMessage').keypress(function(event) { if(event.which == 13) { event.preventDefault(); iosocket.send($('#outgoingChatMessage').val()); $('#incomingChatMessages').append($('<li></li>').text($('#outgoingChatMessage').val())); $('#outgoingChatMessage').val(''); } }); }); 服务器端 var fs = require('fs'), http = require('http'), socketio = require('socket.io'); var server = http.createServer(function(req, res) { res.writeHead(200, { […]

Cloud Foundry和Socket.IO跨域策略问题

每次浏览器加载此url时,我都会收到这类讯息: http://volkova.cloudfoundry.com/socket.io/socket.io.js <?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy><allow-access-from domain="*" to-ports="*"/></cross-domain-policy> 我尝试了socket.io的授权部分,但没有运气。 这是我configurationsocket.io的代码的一部分 io = _.socketio.listen( _.serverdata.xserver, { log: true } ); if( process.env.VMC_APP_PORT ){ io.set( "transports", [ "flashsocket", "htmlfile", "xhr-polling", "jsonp-polling" ] ); io.configure( function( ){ io.set( "authorization", function( handshakeDate, callback ){ //TODO: Provide level of security here callback( null, true ); } ); } ); […]

WebSocket通过亚马逊ELB或直接(远程IP问题)

我们使用WebSockets与我们的EC2实例进行通信。 我们的脚本使用nodejs和Express服务,然后初始化WebSocket。 现在ELB被使用,这使得生活更难以识别客户IP。 使用x-forwarded-for标头,我们可以在HTTP上下文中获得IP,但是当涉及服务器中的WebSocket上下文时,它看起来不是由Amazon转发的。 我们确定了2个选项: 直接与实例(使用其公共DNS)通信WebSocket。 保持某种sessionid,在HTTP中存储IP,并将其与sessionid相关联。 客户端将使用HTTP响应来获取其sessionid,并将其用于WebSocket上。 服务器将识别客户端并从caching中parsing其IP。 两个选项都不是很好:1不是容错,2是复杂的。 有更多的解决scheme吗? 亚马逊能以某种方式转发IP吗? 最佳做法是什么? 谢谢

node.js和websocket模块聊天没有返回数据

我正在使用下面的代码https://gist.github.com/2031681一个简单的聊天应用程序。 我运行node chat-server.js并获取 Tue Jan 08 2013 15:45:52 GMT+0200 (IST) Server is listening on port 1337 我尝试通过http://localhost:1337/chat.html访问它,并获得以下 No data received Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data. 我是node.js的新手,我不知道这个问题可能来自哪里

将XMLstring编码为EXI并通过websocket发送

首先,我使用的是客户端 – 服务器体系结构,android为客户端,node.js为服务器,它们通过Socket.io库连接,因此它们使用的是websocket。 我怀疑的是,我正在用Java的XMLSerializer生成XMLstring,我想将它编码为EXI并将其发送到服务器,因此,是否可以在不使用文件的情况下编码XML-EXI? 直接从string到string? 因为我看到的所有例子都假设我的XML是在一个文件中,而我想把输出转换成另一个文件。 另一个疑问是,我可以把EXI作为string吗? 因为我已经build立了客户端和服务器之间的通信,但是他们只是发送string,我不知道如果我能发送整个文件,在这种情况下,会有任何不同的数据发送量?