Tag: websocket

如何保持页面之间的WebSockets连接?

在我的脚本之一,我有这个代码: var webSocket = window.WebSocket || window.MozWebSocket; window.ws = new webSocket('ws://64.121.210.140:2585/consoleappsample', 'my-protocol'); 哪个工作正常。 但是,当用户更改页面时,我必须重新build立连接。 我相信这是我的代码导致的问题,因为如果客户端发送数据到服务器,然后更改页面,数据可能不会收到和竞争条件发生。 我试图把window.ws放在全局范围内,但似乎没有解决这个问题。 有什么办法可以使WebSockets连接在页面之间保持连接,所以连接不需要不断重新build立?

Socket.io 1.x:只使用WebSockets?

我们正在开发一个只能在现代浏览器(IE10 +)上运行的Web应用程序,原因不同。 我们实现的一个特性是Socket.io 1.x. 但是,默认情况下,Socket.io客户端会尝试支持较旧的浏览器,因此它会启动长轮询连接,然后将其更新到WebSocket。 这是浪费时间和资源,因为我们确定浏览器支持WS。 我search了四周,我只能find这个维基页面 ,但是,这是关于Socket.io 0.9。 最终,我find了engine.io-client的文档 (其中Socket.io-client基于1.x分支)。 这是我写的代码, 似乎正在工作。 但是,我想知道是否正确或者我做错了什么: io.connect('https://…', { upgrade: false, transports: ['websocket'] }) 奇怪的是,只是将transports属性设置为只有websockets的数组是不够的。 我也必须禁用upgrade 。 它是否正确? 更新 我做了一些新的发现。 只有transports设置为['websocket'] ,启用或不启用任何upgrade 。 这是正常的吗?

WebSocket与其他API的实时数据?

我需要不断访问服务器来获取金融工具的实时数据。 价格在不断变化,所以我需要每0.5秒申请新的价格。 经纪人的REST API允许我这样做,但是,我注意到在连接到服务器时有相当的延迟。 我只是注意到,他们也有websocket API。 根据我读到的,他们都有一些优点/缺点。 但是对于我想要做的事情,因为速度在这里特别重要,你会推荐哪种API? Websocket真的更快吗? 谢谢!

带SSL的html5 Websocket

是否有可能有HTTPS的WebSockets? 当切换到https,我的WebSocket返回一个安全错误,并与普通的http完美的作品… socket = new WebSocket("ws://my_www:1235"); 谢谢

如何在端口80上运行Node.js?

我的目标是在端口80上运行Node.js。这是因为我发现node.js被阻止来自某些不允许来自其他端口的stream量的networking。 看来最好的方法是通过Node.js代理Apache。 我已经尝试使用节点HTTP代理来做到这一点,但我没有任何运气。 我使用的代码在这里: var util = require('util'), http = require('http'), httpProxy = require('http-proxy'); httpProxy.createServer(9000, 'localhost').listen(80); http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2)); res.end(); }).listen(9000); 但是我不断收到端口80的“使用中的地址”错误。我一定是做错了。 如何使用node-http-proxy通过node.js代理Apache? 这将使我能够在端口80上运行node.js吗? 而node-http-proxy是达到这个目的的最好方法吗? 谢谢。

哪个WebSocket库在Android应用程序中使用?

我想添加一个服务到我的Android应用程序,它运行在后台持有WebSocket连接(可能超过几个小时甚至几天),并定期发送一些数据到服务器。 现在似乎有一堆Java的WebSocket库,我不知道我应该使用哪一个: 来自GitHub的TooTallNate / Java-WebSocket描述:用100%Java编写的准系统WebSocket客户端和服务器实现。 http://java-websocket.org/ – 这个链接在我的第一个search结果“android websocket” 。 然而,它有一些悬而未决的问题,尤其是关于SSL连接的问题,目前似乎还没有得到积极的维护。 koush / AndroidAsync来自GitHub的描述: android的asynchronoussocket,http(client + server),websocket和socket.io库。 基于nio,不是线程。 – 还有许多公开的问题,但似乎维护/工作activiti。 Project Tyrus网站描述:JSR 356:WebSocket的Java API – 参考实现 – 这是由Oracle制作的。 不知道它是否在Android中起作用。 来自网站的Jetty WebSocket客户端API信息:Jetty还提供了一个Jetty WebSocket客户端库来编写与WebSocket服务器的交谈更容易。 – 再次:不知道它是否在Android的作品。 codebutler / android-websockets来自GitHub的描述: Android的最低websockets(hybi13 / RFC)客户端 – 这一个用于schwiz / android-websocket-example ,这是StackOverflow接受的答案 – 问题“ 如何使Android设备持有TCP连接到Internet没有唤醒锁? “。 GitHub的Atmosphere / wasync描述:带有后备传输客户端库的WebSockets,用于Node.js,Android和Java http://async-io.org TakahikoKawasaki / […]

如何在Jetty 9中访问实例化的WebSockets?

这可能是显而易见的,但我对这个范例是新的。 我创build一个Jetty服务器并注册我的websocket类,如下所示: Server server = new Server(8080); WebSocketHandler wsHandler = new WebSocketHandler() { @Override public void configure(WebSocketServletFactory factory) { factory.register(MyEchoSocket.class); } }; server.setHandler(wsHandler); websocket收到消息罚款。 我也希望能够从服务器发送消息,而不必先从客户端收到消息。 如何访问连接打开时创build的MyEchoSocket实例? 或者更一般地说,我如何在MyEchoSocket中的onText方法之外的套接字上发送消息?

如何在PHP中创buildwebsockets服务器

是否有任何教程或指南显示如何在PHP中编写简单的websockets服务器? 我试图在谷歌上寻找它,但我没有find很多。 我发现phpwebsockets,但现在已经过时,不支持最新的协议。 我试图自己更新它,但似乎并没有工作。 #!/php -q <?php /* >php -q server.php */ error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); $master = WebSocket("localhost",12345); $sockets = array($master); $users = array(); $debug = false; while(true){ $changed = $sockets; socket_select($changed,$write=NULL,$except=NULL,NULL); foreach($changed as $socket){ if($socket==$master){ $client=socket_accept($master); if($client<0){ console("socket_accept() failed"); continue; } else{ connect($client); } } else{ $bytes = @socket_recv($socket,$buffer,2048,0); if($bytes==0){ disconnect($socket); } else{ $user […]

WebSockets协议vs HTTP

关于websocket和HTTP有很多博客和讨论,许多开发人员和站点强烈主张websocket,但我仍然不明白为什么。 例如(websocket爱好者的论点): HTML5 Web Sockets代表了Web通信的下一个发展 – 一种全双工的双向通信通道,通过Web上的一个套接字进行操作。 ( http://www.websocket.org/quantum.html ) HTTP支持stream:请求正文stream(您正在使用它,而上传大文件)和响应正文stream。 在与WebSocketbuild立连接的过程中,客户端和服务器之间交换每帧2个字节的数据,而在进行连续轮询时,与8千字节的http头相比。 为什么那2个字节不包含tcp和tcp协议的开销? GET /about.html HTTP/1.1 Host: example.org 这是约48个字节的http头。 http分块编码 – http://ru.wikipedia.org/wiki/Chunked_transfer_encoding : 23 This is the data in the first chunk 1A and this is the second one 3 con 8 sequence 0 所以,每个块的开销并不大。 而且这两种协议都是通过TCP协议工作的,因此所有长连接的TCP问题仍然存在。 题: 为什么websockets协议更好? 为什么实现而不是更新http协议?

Websockets客户端API中的HTTP头

看起来很容易添加自定义HTTP标头到您的websocket客户端与任何支持这个HTTP头客户端,但我找不到如何使用JSON API做到这一点。 但是, 规范中似乎应该支持这些头文件 。 任何人都有如何实现它的线索? var ws = new WebSocket("ws://example.com/service"); 具体来说,我需要能够发送一个HTTP授权标头。