Articles of websocket

socket.io客户端没有收到消息

当没有指定的房间客户端收到消息,但指定一个房间时,我无法在客户端上接收消息。 server.js var socket = require('socket.io'); var mysql = require('mysql'); const path = require('path'); var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = socket.listen(server); var port = PORT; io.on('connection', (socket) => { console.log('new connection made'); socket.on('subscribe', function (room) { socket.room = room; socket.join(socket.room, function () { console.log('joined:' + room); […]

binary.js BinaryStream.writestream在节点服务器上不可写

我正在上传节点服务器上传一个文件后,我得到错误 我正在使用节点version v0.10.48 参考代码摘自https://github.com/rajkissu/binaryjs-upload-stream 错误:stream不可写入 在BinaryStream.write(/node_modules/binaryjs/lib/stream.js:84:11) 在/src/K/Cli/upload/lib/media.js:120:36 在ChildProcess.exithandler(child_process.js:742:7) 在ChildProcess.emit(events.js:110:17) 在maybeClose(child_process.js:1015:16) 在Process.ChildProcess._handle.onexit(child_process.js:1087:5) 我无法find如何解决这个问题。 问题是1%的情况下,代码去console.log('Debug 4)情况下,并在执行stream.write({end: true}); 它停止节点服务器,即我得到坏的网关,因为抛出错误不处理。 并在前端我使用数据从节点服务器读取内容id和设置完成,但由于节点服务器停止,我无法从节点服务器获取内容id。 bs = new BinaryServer({ port: 9004 }); bs.on('connection', function (client) { client.on('stream', function (stream, meta) { upload(stream, meta); }); }); function upload(stream, meta) { var file = fs.createWriteStream(uploadPath + '/' + meta.name); stream.pipe(file); stream.on('end', function () { // […]

WebRTC或WebSockets用于广播stream媒体video?

我的架构是[ arch0.dot ]: 一台笔记本电脑是[广播]向所有[JavaScript]客户端传输两个video和两个audiostream。 另外我有一个WebSockets连接聊天。 服务器[用Node.JS写入]必须: logging聊天logging(目前通过附加文件来完成) 录制video和audiostream(客户端目前通过MediaRecorder执行此操作 ,但要移至服务器) 相关: WebRTC vs Websockets:如果WebRTC可以做video,audio和数据,为什么我需要Websockets? 2017年下半年,哪种技术最适合这种常见的架构?

如何用WebSocket做请求 – 响应模式

我正在使用Socket.io,我想知道是否有一个很好的方式来使用请求/响应模式。 为每个请求使用UUID,然后只处理来自包含该UUID的响应的数据是最好的方法吗? 这可能不是最具可扩展性的做事方式。

Node.js“ws”websocket服务器在〜30秒后随机断开客户端,错误1006

我有一个简单的websocket服务器,如下所示: const WebSocket = require('ws'); const wss = new WebSocket.Server( { server: server, path: "/ws" }); wss.on('connection', function connection(ws, req) { console.log("Connected"); ws.on('message', function incoming(message) { console.log('received: %s', message); }); ws.on('close', function close(code, reason) { console.log("Code: "+code+" | Reason: "+reason); console.log('disconnected'); }); ws.send('something'); }); 我有一个连接到它的客户端,但连接大约30秒后,websocket服务器closures连接,错误代码为“1006”。 谷歌告诉我这意味着连接exception中断。 但是,我不确定是什么原因造成的。 ws.on('error')callback也不会被触发。 我如何与客户保持无限期的连接?

在NodeJS中存储临时variables

我刚开始尝试使用NodeJS和socket.io创build一个简单的多人在线游戏(类似于在线国际象棋的想法)。 我很抱歉,如果我的问题的答案是真的很明显,因为我试着用googlesearch,但我认为我错过了一些关键的理解。 基本上,我需要在应用程序运行时在服务器上存储一些东西。 例如: 我需要存储哪些套接字连接是主机,哪些是玩家。 我需要存储每个游戏的当前状态(例如在国际象棋中,棋子在哪里,轮到谁了) 能够存储所有的socket.io“房间”也是很好的。 请随时回答这个问题,以下信息仅供参考。 有几件事我已经尝试或在网上看到: 当我谷歌与“持久性”的东西,我得到的基础上保存到数据库的结果或东西,我不认为这是我想要的。 我已经尝试在NodeJS文件的顶部添加variables,就像在普通的JS文件中使用全局variables一样。 这似乎工作,但只是感觉错了,如果有人可以解释这是如何工作,这将是伟大的。 我也看到了所谓的会话variables,我想这可能是我想要的。 我看到的应用程序只是将信息传递到客户端和服务器之间,但我宁愿客户端也不能只编辑信息来“破解”游戏。 任何帮助或解释赞赏。

WebSocket在本地,AWS上工作,而不在AliBaba云上工作

我们有一个非常直的WebSocket node.js实现工作正常 我们的本地机器。 AWS云 但没有工作 阿里云 所有的http / https请求正在打,但websocket请求不是。 试图find这个RCA: Google Chromium浏览器特定的支持问题 问题与谷歌App Engine 一些删除的stackoverflow线程 所有的端口在我们的情况下是开放的 , 我们也没有使用Socket.io 代码对我们来说不是问题 不知道阿里巴巴是否阻止8000 / tcp端口 我们也不确定为什么它不适用于Websockets 已经使用节点服务器应用程序启用CORS 如果阿里云支持WebSockets,也不是很确定。 有什么更好的build议吗?

使用Socket.io的不同房间的不同定时器

我发现了其他3个关于执行回合制游戏的定时器的post,但没有一个人有最终答案。 我正在使用WebSockets(Socket.io)房间进行扑克游戏项目。 每个房间都有一个定时器,负责服务器的转动,例如,每个玩家有10秒的时间来select一张卡。 如果只有一个房间,我可以通过使用setInterval并在每个时间间隔结束时更改转向variables来完成此操作,并向客户端发送新的转向。 但是现在,我觉得在考虑到node.js是单线程的时候,如果有很多房间的话,如何为每个房间实现一个特定的定时器。

我如何在meteor中使用websocket?

我想让Meteor服务器连接到运行websocket的另一台计算机; 但是,我无法弄清楚如何调用'ws'模块。 Meteor.require('ws')和Meteor.require('ws')似乎不起作用,而且我尝试了其他一些事情,却没有得到任何实际的结果。 在当前的meteor发布中,我该怎么做?

如何findnode.js websocket消息的连接?

我正在为node.js websocket聊天服务器写下面的代码,并想知道conn的variables生存期问题是什么。 // chat-server.js // Joshua Marshall Moore // 12/20/2010 var ws = require("../../lib/ws/server"); var server = ws.createServer(); conns = []; server.addListener("connection", function(conn){ function runHandler(msg){ server.broadcast(JSON.stringify({"who": conns[conn], "when": Date.now(), "what": msg})); } function setupHandler(msg){ if(conns.indexOf(msg)==-1 && msg!="Server"){ // name has not been taken yet conns[conn] = msg; conn.send("name ok"); server.broadcast(JSON.stringify({ "who": "Server", "when": Date.now(), "what": […]