Articles of websocket

如何使用Web套接字和angular度CLI来设置代理

我有一个使用angular度CLI构build的简单的Web应用程序。 我希望它使用networking套接字与后端进行通信。 我已经编写了后端,并用一个简单的index.html页面进行了testing,服务器可以在套接字上发送和接收数据。 在我的angular-cli项目中,我已经设置了一个代理configuration文件来设置代理到后端。 proxy.conf.json { "/sock": { "target": "http://localhost:3000", "changeOrigin": true, "ws": true, "logLevel": "debug" } } 然后使用以下命令启动服务器。 ng serve –proxy-config proxy.conf.json 现在我有一个服务,只是试图打开一个套接字,并发送一个固定的string,我期待看到后台logging。 import { Injectable } from '@angular/core'; import * as io from 'socket.io-client'; @Injectable() export class ChatService { private socket: any; constructor() { this.socket = io({ 'path': '/sock' }); this.socket.emit('chat message', 'Hello […]

轮到socket.io和Nodejs轮stream的游戏

我用Socket.io使用Nodejs来制作一个基于回合的游戏。 每当“Pass”button被按下或转弯开始后经过5秒时,每一转都必须结束。 无论首先发生什么事都必须触发“通行证”事件。 即使不是当前玩家转身,我目前的对手也会持续循环,并且在某些情况下会提前结束。 我在使用什么逻辑方面有问题,让我的轮到正常工作。 我的客户端有这个function //Pressing "Pass" button $('#pass_turn').on('click', function(){ socket.emit('pass_turn'); $('#your_turn').hide(); $('#not_turn').show(); }); //This runs everytime the server tells the player its their turn socket.on('your_turn', function() { $('#your_turn').show(); $('#not_turn').hide(); var counter = 0; var interval = setInterval(function() { counter++; if (counter == 5) { console.log('pass_turn'); clearInterval(interval); $('#pass_turn').trigger("click"); } }, 1000); }); 这是我的服务器端代码: socket.on('pass_turn', […]

使用Php将数据从一个客户端推送到另一个客户端

我正在进行我的空气质量监测系统的大学项目,数据(比如一些整数值)必须从传感单元到网页。 我想要的是 是由这个url http://localhost/AQProject/recordupdate.php?val=2调用的脚本更新显示内容的网页。 现在我知道我可以将数据保存在数据库中,并每两秒钟运行一次基于Ajax的查询来检查更新,但是我希望更新由服务器推送。 我做了什么: 我曾尝试Server sent events 。 这是我的尝试 <?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); if($_SERVER["REQUEST_METHOD"]=="GET") { if(empty($_GET["val"])) die ("Empty Value from source"); else { $v = $_GET['val']; echo "data: The Pollution stub value is {$v}".PHP_EOL; ob_flush(); flush(); } }?> 和HTML有脚本 <script> if(typeof(EventSource) !== "undefined") { var source = new EventSource("recordupdate.php"); source.onmessage = function(event) […]

在水平伸缩的WebSocket服务器上负载均衡套接字?

每隔几个月,当我想通过一个涉及套接字的个人项目时,我发现自己的问题是: “如何在dynamic水平扩展的WebSocket服务器上正确加载平衡套接字? 我理解了横向扩展WebSockets背后的理论,并使用pub / sub模型将数据获取到保存特定用户的套接字连接的正确服务器。 我想我理解的方法是用最less的当前套接字连接来有效地识别服务器,我也希望路由一个新的套接字连接。 我不明白的是如何有效地将新的套接字连接路由到您select的低套接字计数的服务器。 我不认为这个答案会绑定到一个特定的服务器实现,而是可以应用到大多数服务器。 我可以很容易地看到我自己用vert.x,node.js,甚至完美实现了这个。

节点+连接+ WebSockets

我正在寻找连接的WebSockets lib /中间件 到目前为止我发现的是Socket.IO-connect,但是它使用了补丁版本的Connect。 这是一个问题,主要是由于从主分支分离连接补丁版本。 你能推荐一个好的图书馆吗?

如何从命令行访问node.js服务器

这个问题的背景: 我正在使用FFmpeg来转换video – 它工作正常。 我使用PHP中的exec()将FFmpeg请求发送到命令行。 我也使用node.js和socket.io为我的用户提供实时更新 – 这也工作正常。 我希望能够在video完成转换后发送实时提醒。 我的问题是: 如何从命令行向我的节点服务器发送请求。 我可以从命令行运行一个JS文件吗? 如果不是什么是最好的方法呢? 感谢您的build议, 克里斯。

如何使用websocket-server和node.js设置安全的websocket连接

我无法使用websocket-server和node.js来设置安全的websocket连接 服务器端 var options = { key: fs.readFileSync(PRIVATE_KEY), cert: fs.readFileSync(CERTIFICATE) }; // create web server var server = ws.createServer(options); server.listen(8000); … 客户端 <script language="javascript" type="text/javascript"> var wsUri = "wss://url:8000"; function init() { websocket = new WebSocket(wsUri); } … window.addEventListener("load", init, false); </script> 但它适用于ws var wsUri = "ws://url:8000"; 有任何想法吗?

validationWebSocket连接源

我目前正在开发一个谷歌浏览器扩展插件,通过WebSockets连接到我们的服务器,但是很害怕有人能够用假的数据来炸毁我们的服务器,所以我们希望实现一个安全措施,以防止其他来源连接到服务器。 有什么方法可以将安全措施集成到应用程序和服务器中,以validation来自Google Chrome扩展程序的连接? 在进行这种应用程序时,我们是否还有其他的事情需要注意? 任何意见表示赞赏。

在多人Socket.io游戏中pipe理套接字

我正在用Node.js和Socket.io构build一个大型的多人游戏。 所有的玩家都会在相同的无限地图上移动(想想Minecraft)。 随着玩家的移动,我加载了他们可见的瓷砖。 当玩家移动他们的动作时,应该发送给所有可以看到他们的玩家。 我的问题是 我应该如何去构build我的套接字? 对于所有玩家来说,只有一个sockets看起来不像是可以缩放的。 我可以把世界分成块,但我不知道如何pipe理块的边界。 由于大多数玩家大多数时间都无法看到彼此,所以我更希望每个玩家的套接字只能得到与他们相关的更新。 我读过,Socket.io有一个“房间”的概念,它只是sockets,得到相同的消息。 为每个连接的玩家设置一个单独的房间是否可行? 然后,每次玩家移动,我都可以发送消息给那个房间。 当观众离开或join房间时,我怎么能pipe理呢? 显然这是一个模糊的问题,但我只是寻找最佳实践的build议。 链接到这个问题的文章将不胜感激。

Qt连接到WebSockets服务器

有人能指出我正确的方向,让Qt连接到运行Socket.io服务器的Node.JS吗? 我发现运行Qt作为服务器的例子,但没有读取数据。