jjzjj

WebSocket

全部标签

javascript - Node.js/Socket.io 中对旧版浏览器的 Web Socket 支持

我使用C++创建了一个WebSocket服务器。我们知道HTML5支持WebSocket,我们有标准的WebSocketJavaScriptApi来与WebSocket服务器通信。我能够使用WebSocket连接到WebSocket服务器阿皮。由于WebSocketApi仅在新浏览器中受支持。IEversion10Chromeversion16Firefoxversion6Safariversion6.0Operaversion12.10我需要提供support也适用于以下浏览器版本。WebSocketApi支持的浏览器IEversion7Chromeversion14Firefoxv

javascript - 使用 Jasmine 在 JavaScript 中插入 WebSocket

我尝试测试onmessage是否是一个正确的函数。这是一个测试:describe(".init(address,window)",function(){beforeEach(function(){address='ws://test.address';window={};e={data:{}}spyOn(window,'WebSocket').and.returnValue(function(){return{onmessage:null}});spyOn(subject,'handleMessage');});it("shouldcreateaWebSocketclientwhich

javascript - 我是否可以使用 WebSockets 连接到 irc、icq、sip 等服务,前提是我在 JavaScript 中实现了这些协议(protocol)?

我想使用WebSockets连接到irc、icq、sip等服务。假设我在JavaScript中对这些协议(protocol)进行了某种实现?那可能吗?与常规套接字相比,我似乎不了解WebSockets的局限性。 最佳答案 不,你不能,至少不能直接。WebSockets允许在浏览器和WebSocket服务器之间进行实时消息传递,但它们有自己的第7层协议(protocol)来封装这些消息。它们不提供对您可以在其上实现现有协议(protocol)的纯TCP(或UDP)套接字的访问。 关于jav

javascript - websocket + vuejs : screen flickering, 可见 mustache 代码

我使用websockets和vuejs构建了一个网络应用程序。在DOM中,我想遍历vuejs处理的数据。然而,在建立websocket连接并接收到数据后,数据会在时间线的后面设置。到那时(大约0.5秒),您可以在网站本身上看到vuejs的mustache代码,然后看到它闪烁并添加真实数据。当从websocket连接接收数据时,我创建了ViewModel,如下所示:onMessage:function(e){newVue({el:'#messages',data:{messages:e.data}});}我已经尝试过在页面加载时初始化ViewModel,然后设置数据:varvms={me

javascript - 调用 .disconnect() 后如何重新连接

问题:在发出手动.disconnect()后如何将客户端重新连接到服务器?在我当前的项目中,当用户从session中注销时,我需要断开客户端与服务器的连接。我执行了socket.disconnect()以成功断开连接。服务器从session中删除了用户。一段时间后,用户决定再次登录,但socket.io拒绝连接。我很清楚Socket.IO已经实现了重新连接算法,但显然这是不同的情况。下面是我进行连接的代码片段。在此代码块的第二次触发中,创建了对象socket,但没有从该对象触发connect。//Startthesocketvarsocket=io.connect(SOCKET_IO_

javascript - socket.io - 向特定用户广播

我需要使用websockets(socket.io+node.js)建立双人聊天。因此,向所有用户广播消息的简单示例:socket.on('usermessage',function(msg){socket.broadcast.emit('usermessage',socket.nickname,msg);});但是我怎样才能将它从特定用户广播到特定用户呢? 最佳答案 有两种可能:1)每个套接字都有自己唯一的ID,存储在socket.id中。如果你知道两个用户的ID,那么你可以简单地使用io.sockets[id].emit(...

javascript - 连接到 WebSocket 时如何覆盖 Chrome 中的 Origin header ?

我正在尝试连接到外部网络套接字服务器,该服务器不是由我自己运行。我想从本地主机javascript文件连接到它,因此原始header具有空值。我了解这是一种针对跨站点伪造的措施。但是,由于我在本地主机上,我应该能够通过让Chrome发送自定义Originheader来伪造它。这可能吗?(如果我需要延期,那很好)如果不是,实现上述目标的最佳选择是什么?谢谢。 最佳答案 网页无法更改Originheader,但扩展可以通过chrome.webRequest修改请求header应用程序接口(interface)。但是ws://andwss

javascript - Node.js + Socket.io + Apache

我正在寻找一种通过以下方式集成Node.js+Socket.io+Apache的方法:我希望apache继续提供HTML/JS文件。我希望node.js监听端口8080上的连接。像这样:varutil=require("util"),app=require('http').createServer(handler),io=require('/socket.io').listen(app),fs=require('fs'),os=require('os'),url=require('url');app.listen(8080);functionhandler(req,res){fs.re

javascript - socket.io 在 x 秒/第一次尝试获取响应失败后停止重新发出事件

我注意到每当我的服务器离线时,当我将其切换回在线时,它会收到大量套接字事件,这些事件是在服务器关闭时触发的。(现在已经过时的事件)。有没有办法阻止socket.io在x秒内未收到响应后重新发出事件? 最佳答案 当开源库的所有其他方法都失败时,您可以去研究代码,看看您能找出什么。在花了一些时间使用socket.io源代码之后...问题的关键似乎是这段代码here在socket.emit()中:if(this.connected){this.packet(packet);}else{this.sendBuffer.push(packet

javascript - 在 ("message"上定义 Socket.io 的最有效方法)处理程序

Socket.io的例子都遵循这个模式io.sockets.on("connection",function(mySocket){mySocket.on("mymessage",function(myData){...});});在我看来,这将为每个连接创建一个新的回调函数。假设每个套接字都以相同的方式响应消息,像这样为所有套接字定义一次处理程序是否会更节省内存:functionmyMessageHandler(data){...}io.sockets.on("connection",function(mySocket){mySocket.on("mymessage",myMessag