Tag: websocket

iOS – 使用Websockets进行自动完成

我正在构build一个iOS应用程序,允许用户在大型数据库中search书籍。 我们希望实现一个“自动完成”function,在用户input时从服务器检索标题,以在表格视图中提供build议(我们的后端使用排名algorithm来获取相关结果)。 我们正在使用Starscream框架来实现Websockets,但是我想获得一些关于实现此function的最佳方式的build议。 到目前为止,我已经提出了两个select: 用户启动应用程序时打开Websocket连接,并在整个会话中保持此连接。 networking连接的变化将导致pipe道被破坏,所以需要使用客户端ping来检测这个并build立一个新的连接。 当用户点击search栏开始input时,打开Websocket连接。 只有在search栏处于活动状态(键盘存在时)时,连接才会保持打开状态,并且在键盘被解除时断开连接。 有一件事要记住,应用程序有多个视图和function,不涉及search,实际上需要自己的连接(例如,消息function当前使用自己的WebSocket连接发送/接收来自其他用户的消息,其他视图从REST API下载内容)。 所以这引出了另一个问题: 从同一个应用程序同时维护多个WebSocket连接是否有缺点? 另外,有哪些好的做法可以用来确保连接通过networking转换(即从WiFi到蜂窝)保持活跃? 这个问题我有很多问题,特别是在消息服务方面。 任何build议/这个话题的帮助将不胜感激。 作为参考,我们的服务器使用Node.js和Websockets的ws框架。

websocket客户端到socket.io

我需要一个服务器能够接受来自websocket和socket.io客户端的连接,这是可能的吗? 当我运行的只是socket.io,也socket.io客户端工作正常,但标准的WebSocket客户端无法连接。 另一方面,当我与socket.io一起运行websocket服务器,websocket崇拜,但在浏览器,这是试图通过socket.io连接,我看到错误WebSocket connection to … failed: Invalid frame header 。 是否有可能使两个连接在单个服务器实例上工作? 我正在使用express.io和websocket节点 ,这将是很好的让它只与express.oi工作。

sails.io.js – 从“Resourceful PubSub”断开连接

我正在构build一个单页的Web应用程序,在后端使用sails.js ,并通过socket.io.js套接字io包装来连接。 我有一个小帮手类让我订阅我的模型: subscribe(model, next) { io.socket.get('/' + model, function serverResponded (body, JWR) { if (JWR.statusCode == 200) { next(null, body, JWR.headers); } next('The socket server responded with a bad status code ' + (JWR.statusCode), null, JWR.headers); }); } 所以这个工程(我想,不知道如何得到更新推送给我,但是,),但是,当用户更改我的Web应用程序中的页面,我应该如何断开这个“订阅”,并保持连接,因为它的单个页面? 我看到io.socket.disconnect()但不知道如何适应它。

如何从websocket连接保存来自客户端的传入文本文件

我试图在node.js中实现一个websocket服务器,而不使用任何框架。 从客户端发送消息到服务器工作正常。 但是现在我试图从客户端发送一个文本文件到服务器。 我可以通过在terminal中使用console.log来查看服务器端的内容。 但: 我如何获得文件信息? (姓名,创build/编辑date等?) 我怎样才能保存文件? 客户代码: (function () { 'use strict'; var output, ws; //Display logging information in the document function log(s) { var p = document.createElement("p"); p.style.wordWrap = "break-word"; p.textContent = s; output.appendChild(p); //Also log information on the javascript console window.console.log(s); } //Send a message on the Websocket function sendMessage(msg) { […]

无法从本地计算机上的socket.io-client连接到Azure Web App上的socket.io

我正在尝试获取作为Azure Web App托pipe的socket.io服务器与本地计算机上的socket.io-client进行通信。 我testing了我的本地networking上的两台计算机之间的代码,它工作正常…客户端发送消息到服务器和服务器响应与确定。 但是,当我使用连续部署加载服务器文件并尝试连接它时,客户端无法连接,我无法获得有关正在进行的任何反馈。 io.on('error, function(){};甚至不会触发。 这里是客户端的代码(我刚刚修改了IP地址): var socket = require('socket.io-client')('http://160.23.1.5:3100'); var readline = require('readline'), rl = readline.createInterface(process.stdin, process.stdout); socket.on('connect', function(){ console.log('Connected to Server!'); }); socket.on('error', function(){ console.log('Erorr connecting to server'); }); socket.on('DATA', function (data) { console.log(data); /// **** Code for entering client input }); rl.setPrompt('Server says> : '); rl.prompt(); rl.on('line', function(line){ socket.emit('RANDOM', {value: […]

Websocket + SSL(WSS)客户端在C ++中的实现

我想在c ++中实现安全的websocket连接(WSS)。 我不想使用任何外部库。 我有正常工作(ws)连接的代码。 我也想添加对HTTPS的支持。 任何机构都可以告诉我如何继续下去。 例如:对于正常的ws连接: GET / foo HTTP / 1.1 主机:example.server.com 升级:websocket 连接:保持活着,升级 Sec-WebSocket-Key:dfGsdNhbXBsZSBub25REQ == Sec-WebSocket-Version:13。 我已经正在发送这些types的请求,创build正常的套接字和连接到服务器后的代码。 以同样的方式我也想做WSS。 请告诉我如何做到这一点。 谢谢, VVK。

在socket io中停止接收事件一段时间

我在我的套接字客户端同时充斥着许多事件。 假设有任何两个事件eventA and eventB ,其中eventB仅在eventA发生eventB被使用。 所以到那时我想忽略那个事件。 如何在nodejs中使用socket.io来实现这个场景?

为什么我在Node的HTTP服务器上有这么多连接事件?

我有一个使用socket.io的Web应用程序。 它在本地机器上运行localhost:8000。 为了在我的应用程序中find令人讨厌的资源泄漏,我尝试在我的HTTP服务器上注销连接事件: server.on('connection', function(conn) { //log out connection details }); 在页面加载后,当我在浏览器中打开页面时,可以在日志中看到多个连接事件 – 如下所示: connection established: 127.0.0.1:54148 connection established: 127.0.0.1:54149 connection established: 127.0.0.1:54146 connection established: 127.0.0.1:54152 connection established: 127.0.0.1:54144 connection established: 127.0.0.1:54155 奇怪的是,我没有创build一个WebSocket连接后,页面加载 – 只有当用户点击一个button。 但是我没有点击任何button,我仍然看到这些奇怪的联系。 如果我点击我的button来连接到我的服务器socket.io日志显示一个新的连接: connection established: 127.0.0.1:54155 幸运的是,我在日志中看到的每个连接都在一段时间后closures – 所以我猜这不能成为我资源泄露的原因。 但我仍然好奇:是什么原因导致这些连接事件? 为什么端口号这么奇怪(不是我的服务器监听的8000)? 编辑: 我的服务器configuration不是一个特殊的。 在server.js : var express = require('express'); var app […]

如何设置Websocket与客户端和服务器发送事件服务器通信?

我需要在浏览器和REST API服务之间build立一个双向通信。 我面临的最复杂的事情之一是每秒钟检查API的更新。 我有两种沟通方式 浏览器将数据和命令传递给API。 API执行该命令并返回响应。 每秒检查一次API,更新用户的caching,将caching的caching内容发送给浏览器。 我尝试了不同的技术来处理这个问题,但是没有一个能够很好地工作,而且都不能扩展。 这里有一些我尝试过的技巧 每秒使用Javascript中的setInterval()函数调用API。 服务器发送事件(SSE) 每秒使用ShardWorker中的setInterval()函数调用API。 我希望我可以使用WebSocket和node.js来进行通信。 WebSocket如何处理上面列出的通信types?

socket.io似乎在我的Android手机上延迟

编辑2: 我观察到使用服务器发送的事件(SSE)相同的行为。 看这里的例子。 (当然,这是一种方式)。 不过,在我的Nexus 5上它似乎更强大,并且不会经常出现问题。 它也快速恢复/重新连接。 编辑1: 另见Websocket间隔…在SO上。 我正在使用Nexus 5与Chrome 45通过路由器通过WiFi与我的笔记本电脑进行通信。 我桌面上的服务器使用node.js版本0.12.7编码,我使用socket.io 1.3.6。 这里是服务器的代码: 'use strict' const app = require( 'express' )(); app.get( '/', function( req, res ){ res.render( 'test_socketio_client.ejs' ); }); let httpServer = app.listen( 8000 ); const io = require( 'socket.io' )( httpServer ); let i = 0; io.on( 'connection', function( socket […]