Tag: websocket

分块WebSocket传输

因为我在更经常的基础上使用WebSocket连接,所以我对引擎盖下的工作感兴趣。 所以我在一段时间内深入了解无尽的规格说明文档,但到目前为止,我还是无法find有关分stream传输stream本身的东西 。 WebSocket协议将其称为dataframe (它描述纯数据stream,因此也称为非控制帧 )。 就我所了解的规范而言,没有定义的最大长度和没有定义的MTU(最大传输单元)值,这又意味着单个WebSocketdataframe可能按规范(!)包含无限数量的数据(如果我错了,请纠正我,我仍然是这个学生)。 读完之后,我立即安装了我的小型节点 WebSocket服务器。 由于我有很强的Ajax历史(也是在stream媒体和Comet上),我的期望本来就是“ 在数据传输时必须有一种交互式的读取方式 ”。 但是我错了,不是吗? 我从小的4kb的数据开始。 服务器 testSocket.emit( 'data', new Array( 4096 ).join( 'X' ) ); 并像预期的那样,作为一个数据块到达客户端 客户 wsInstance.onmessage = function( data ) { console.log( data.length ); // 4095 }; 所以我增加了有效负载,而且我实际上又在onmessage ,在某个时候,客户端的onmessage处理程序将重复发射,从而有效地传输数据。 但令我震惊的是,它从来没有发生( 节点服务器 ,在Firefox , Chrome和Safari客户端testing)。 我最大的有效载荷是80 MB testSocket.emit( 'data', new Array( 1024*1024*80 ).join( 'X' ) […]

Websocket的onerror – 如何阅读错误描述?

我一直在开发基于浏览器的多玩家游戏,我已经在不同的环境(客户端办公室,公共WiFi等)testing了不同的端口可访问性。 一切进展顺利,除了一件事:我不知道是如何阅读错误号。 或接收到错误事件时的描述。 客户端websocket是在JavaScript中完成的。 例如: // Init of websocket websocket = new WebSocket(wsUri); websocket.onerror = OnSocketError; …etc… // Handler for onerror: function OnSocketError(ev) { output("Socket error: " + ev.data); } 'output'只是写入div的一些实用函数。 我得到的是对ev.data的“未定义”。 总是。 我一直在search,但似乎没有关于这个事件有什么参数和如何正确阅读的规格。 任何帮助表示赞赏!

WebSockets,UDP和基准

HTML5 websockets目前使用一种TCP通信forms。 但是,对于实时游戏而言,TCP并不会削减它(这也是使用其他平台的原因)。 因为我可能需要UDP来继续一个项目,我想知道是否HTML6的规格或任何将支持UDP? 另外,WebSockets是否有可靠的基准testing,将WS协议与低级别的直接套接字协议进行比较?

在使用WebSocket和dgrid的自定义dstore中缺less事件

我正在尝试创build自定义存储,应使用WebSocket或REST(在发生WebSocket失败的情况下)。 代码文件rachet-store.js 它几乎完美的工作。 它也适用于REST(myRest)。 问题是,如果使用wsStore,并且如果我删除DataGrid中的第一个或第二个页面上的一行,DataGrid会通知并刷新本身。 但是,如果我删除第三个或任何其他页面上的行,商店不刷新。 我认为这个问题可能在sort()某个地方,因为使用了Grid(或者Pagination)的工作方式。 (但它只是一个猜测…) 所以,问题是,我做错了什么?

HTML5 Websockets可以直接连接2个客户端(浏览器)而不使用服务器吗? (P2P)

使用HTML5 Websockets,我可以直接在2个客户端(浏览器)之间打开一个套接字(假设我知道他们的IP地址,并且没有NAT遍历问题)。 我想直接从一个浏览器发送一些数据到另一个浏览器,从本质上创build一个P2Pnetworking。 我到目前为止在网上阅读过的所有东西,websockets都用来在客户端和服务器之间进行通信,但是客户端和客户端之间没有任何关系。 谢谢

在Socket.io的Firefox上,“websocket在页面加载时中断”

Error: The connection to <websocket> was interrupted while the page was loading. Source File: localhost/socket.io/node_modules/socket.io-client/dist/socket.io.js Line: 2371 我是socket.io的新手,我试图search这个,但是我没有得到答案。 当我刷新Firefox的页面时,WebSocket被中断。 这就是为什么服务器端正在等待授权客户端。 这是代码: server.js–> var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(8080); function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); […]

HAProxy + WebSocket断开连接

我正在使用HAProxy将子域上的请求发送到node.js应用程序。 我无法让WebSockets工作。 到目前为止,我只能够让客户端build立一个WebSocket连接,但之后会有一个断开连接。 我在Ubuntu上。 我一直在使用各种版本的socket.io和node-websocket-server 。 客户端是最新版本的Safari或Chrome。 HAProxy版本是1.4.8 这是我的HAProxy.cfg global maxconn 4096 pidfile /var/run/haproxy.pid daemon defaults mode http maxconn 2000 option http-server-close option http-pretend-keepalive contimeout 5000 clitimeout 50000 srvtimeout 50000 frontend HTTP_PROXY bind *:80 timeout client 86400000 #default server default_backend NGINX_SERVERS #node server acl host_node_sockettest hdr_beg(host) -i mysubdomain.mydomain use_backend NODE_SOCKETTEST_SERVERS if host_node_sockettest backend NGINX_SERVERS server […]

是否有可能build立一个只使用HTML(5)和JavaScript的洪stream客户端?

还有更多的补充。 有没有可能只使用HTML和JavaScript构build一个洪stream客户端。 你不能使用像Java,ActiveX,NaCl等…如果是,请给出一个高层次的描述。 我没有太多有关前端开发的知识,但我认为websockets将能够进行networking连接(可以将一个客户端连接到另一个客户端,而无需将所有数据通过服务器?)。 我知道你不能使用JavaScript编写文件,所以我认为被下载的文件将不得不完全保存在内存中,否则客户端将不得不使用HTML5中的一个新的API来存储内容。

使用webSocket发送消息给特定的连接用户?

我写了一个代码向所有用户广播消息: 使用的代码:( 简短) // websocket and http servers var webSocketServer = require('websocket').server; … … var clients = [ ]; var server = http.createServer(function(request, response) { // Not important for us. We're writing WebSocket server, not HTTP server }); server.listen(webSocketsServerPort, function() { … }); var wsServer = new webSocketServer({ // WebSocket server is tied to a […]

为什么没有WebSockets的同源策略? 为什么我可以连接到ws:// localhost?

我想为我的应用程序使用WebSockets进行进程间通信(守护进程< – > WebGUI和守护进程< – > FatClient等)。 在testing期间,我尝试通过websocket.org上的JavaScript WebSocket客户端( http://www.websocket.org/echo.html )连接到本地运行的Web套接字服务器(ws:// localhost:1234)。 我现在的问题是: 为什么这可能? 在浏览器中是否没有实施跨源策略(这里是Linux上的FF29)? 我问,因为如果websocket.org是邪恶的,它可以尝试与我的本地WS服务器进行通信,并redirect它从本地收到的每个消息到任何其他服务器: 本地WebSocket服务器浏览器恶意Web服务器 在http://evil.tld的ws:// localhost:1234 | | | | | —— [GET /] ———> | | | <—– [HTML + EvilJS] —- | | <—— [连接ws:// ..] —- | | | <—- [某个通讯] – > | | | | —- [邪恶转] […]