Articles of 套接字

Socket.IO – 从客户端发送的消息在服务器和客户端上失败

我正在使用Socket.IO连接从服务器到客户端的实时数据通信平台。 服务器运行的是Node.JS,客户端是使用Atom的Electron的网页forms的桌面应用程序。 我很好地接收客户端的消息,但是当我尝试发送消息时,通过以下格式: window.socket.emit('embed',{'…'}); 服务器触发error handling程序: socket.on('error',function(err) { console.log('client error: '+JSON.stringify(err)); }); 我在我的日志中看到: client error: {} debugging客户端上的Socket.IO会在消息发送时显示日志: [14184:0511/184052:INFO:CONSOLE(1)] "socket.io-client:manager writing packet %j +10s", source: https://cdn.socket.io/socket.io-1.3.5.js (1) [14184:0511/184052:INFO:CONSOLE(1)] "socket.io-parser encoding packet %j +819ms", source: https://cdn.socket.io/socket.io-1.3.5.js (1) [14184:0511/184052:INFO:CONSOLE(1)] "socket.io-parser encoded %j as %s +0ms", source: https://cdn.socket.io/socket.io-1.3.5.js (1) [14184:0511/184052:INFO:CONSOLE(2)] "%cengine.io-client:socket %cflushing %d packets in socket%c +820ms", source: https://cdn.socket.io/socket.io-1.3.5.js […]

NodeJS同步客户端

我使用socket.io和nodejs, 我有一个服务器,我用它作为我的nodeJS服务器。 我想要做的是根据客户端 – >服务器 – >客户端发送的消息移动客户端 例如; client1向服务器发送消息“MOVE-RIGHT”。 服务器将此消息redirect到所有客户端如“MOVE-RIGHT-CLIENT1”,并根据此消息,所有客户端开始将client1移动到正确的方向。 问题是,根据networking状态,所有客户端可能有不同的延迟。 例如,如果服务器 – >客户端1通信在50毫秒内发生,则服务器 – >客户端2通信可能在250毫秒内发生。 因此,客户端1提前将近200毫秒执行此项任务。 所以我们可以说这两个动作是不同步的,因为其中一个动作比其他动作早。 如您所知,客户端和服务器之间的延迟可能因每个客户端而不同,并且对于同一客户端的每条消息也可能不同。 我的问题是,我应该使用哪种方法来同步这些客户端,同时完成他们的工作。 有没有关于这个socket.io或nodejs的任何function? 你会为我推荐什么?

如何在使用iojs创buildhttp请求时捕获EHOSTDOWN套接字错误?

我有一个简单的iojs http服务器,与我的开发机器上的另一个http后端进行通信。 现在我的IP已经改变,后端请求将不会工作,由于错误的IP。 我有(或至less是这样认为)错误pipe理,但是由于未处理的exception,在某些情况下,服务器崩溃: 当执行2个后续请求时,第一个请求会“挂起”,然后第二个请求会使服务器崩溃: events.js:141 throw er; // Unhandled 'error' event ^ Error: connect EHOSTDOWN 192.168.1.11:80 – Local (192.168.1.10:54125) at Object.exports._errnoException (util.js:846:11) at exports._exceptionWithHostPort (util.js:869:20) at connect (net.js:840:14) at lookupAndConnect (net.js:933:5) at Socket.connect (net.js:902:5) at Agent.exports.connect.exports.createConnection (net.js:61:35) at Agent.createSocket (_http_agent.js:177:16) at Agent.addRequest (_http_agent.js:147:23) at new ClientRequest (_http_client.js:132:16) at Object.exports.request (http.js:30:10) 有问题的错误将不会触发backRequest.on("error", errFn) ,它不是一个标准错误,如function(err, response, […]

带有AudioContext的Socket.io在接收时发送和接收audio错误

我正在尝试构build一些东西,用户可以使用socket.io,audioContext,js作为前端,Node.js,socket.io作为服务器,让用户可以即时发送audio给很多人。 我可以录制audio,将其发送到服务器并将其发回给其他用户,但我无法播放这些数据。 我想这肯定是我发送它们的问题,或者我如何处理接收它们的缓冲区。 我得到以下错误: 更新! 传递给decodeAudioData的缓冲区包含未知的内容types。 audio传递正常,缓冲区没有错误地创build,但没有声音反馈。 用户按下logging,并开始logging/stream与他以下function: 这是如何开始的: navigator.getUserMedia({audio: true,video: false}, initializeRecorder, errorCallback); function initializeRecorder(stream) { var bufferSize = 2048; audioCtx = new (window.AudioContext || window.webkitAudioContext)(); var source = audioCtx.createMediaStreamSource(stream); var recorder = audioCtx.createScriptProcessor(bufferSize, 1, 1); recorder.onaudioprocess = recorderProcess; source.connect(recorder); recorder.connect(audioCtx.destination); recording = true; initialized = true; play = false; stop = true; } […]

如何连接javascript和c#

我需要使用ac#应用程序连接一个基于javascript / jquery的网页(仅在本地执行)。 我想最简单的方法是使用数据库(似乎有问题,从JavaScript连接)或TCP套接字。 我试图创build一个套接字,但由于某种原因,我卡住了。 然而,我能够创build一个运行node.js的服务器,向c#发送一个“hello world”,但是我不能用javascript连接到那个服务器。 我的特殊用例是识别跳跃动作的网页。 C#部分将在Unity中运行,不能执行给定的JavaScript文件。 所以JavaScript和C#之间的通信不是用来构build网站的(这将是使用asp.net的主要原因,对吗?) WCF听起来很有趣,但有没有办法从JavaScript连接呢? 我的“服务器”是用socket.io创build的: var net = require('net'); var server = net.createServer(function(socket){ console.log("function called: " + socket.value); socket.write('hello\n'); socket.end('world\n'); }); server.listen(8000); 我可以从我的C#应用​​程序连接到此服务器,但我不知道如何发送来自JavaScript的消息。 当试图连接使用WebSocket时,我得到以下错误: WebSocket connection to 'ws://127.0.0.1:8000/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED 使用io.connect结果在: net::ERR_NAME_NOT_RESOLVED 我如何得到这些错误从客户端JavaScript聊天的Web应用程序?

节点js连接到Photoshop

我正在寻找关于与Photoshop的套接字连接的示例和文档。 我试图找出他们如何做这个发电机核心 。 我想要做的是连接到Photoshop。 告诉photoshop打开一个文件,在照片上运行一个动作,然后保存。

使用Socket.io检测(客户端)连接

我正在尝试使用Socket.io(通过NodeJS和AngularJS)来检测客户端何时因连接丢失而不一致。 我试过抓住socket.on disconnect connect_error reconnect_attempt reconnecting 但看起来他们并没有被解雇客户端。 我究竟做错了什么? 由于连接删除是一个客户端问题,我希望我应该能够在客户端上检测到它,但也许我错了。 有人可以帮我吗? 谢谢! 编辑:这是我正在使用的代码 socket.io.timeout(1000); console.log(socket); socket.on("open", function(){ console.log("Connected); }); socket.on("reconnect_attempt", function(){ console.log("Attempt"); }); socket.on("reconnecting", function(){ console.log("Reconnecting"); }); socket.on("disconnect", function(){ $log.error("Client disconnected"); }); 我正在伪装Chrome的设备模式。

连接Socket.IO和Kryo​​net,连接,但在TCP注册期间超时

我有一个nodeJS服务器设置来接受套接字连接,这似乎与我的Web应用程序正常工作。 现在我试图设置相同的服务器来接受来自Android,iOS(虽然RoboVM)和桌面上的Kryonet库的套接字连接。 节点设置: gameserver.js var server = app.listen(9999, function() { var host = server.address().address; var port = server.address().port; console.log('Gameserver listening at http://%s:%s', host, port); }); //Socket IO stuff. var io = require('socket.io').listen(server); require('./live_game_api.js')(io); live_api.js module.exports = function(io) { io.sockets.on('connection', function(socket) { console.log('user connected to server.'); socket.on('test', function(msg){ console.log('message: ' + msg); }); }); } 然后在我的应用程序中,我得到了: […]

获得总数。 在Socket.io +多进程/集群中的室内连接用户

我想在socket.io中没有连接的用户,我有多个socket.io服务器 例如。 当user1连接到server1并join房间room1 下面的语句返回给出连接的用户列表 然后 io.nsps['/'].adapter.rooms["room1"] 要么 io.sockets.adapter.rooms["room1"] 而且我还尝试了很多其他的解决scheme可用于SO和谷歌。 但是,当我在server2使用上述语句它不会返回任何内容。 我怎样才能得到没有连接的用户在所有的服务器为特定的房间? 我正在使用socket.io-redis模块在多个进程之间进行通信。

无法在android socketio客户端与socketio服务器之间build立连接

我正在尝试使用Socket.IO开发一个聊天应用程序。 我的服务器端是Node.js,安装了express + socket.io库,我的客户端是Android + Web。 我尝试在我的客户端使用所有这些jar子: 'com.github.nkzawa:socket.io-client:0.3.0' – 这是在socket.io网站教程中find一个android到socketio服务器。 'io.socket:socket.io-client:0.6.1' – 在nkzawa android chat demo repository中find。 'com.github.nkzawa:socket.io-client:0.6.0' – 过去的另一个版本,为我工作。 所有这些jar子都没有为Android方面工作。 在我的服务器端,我有最新版本的Socket.IO库的1.3.7,我试着每个上面的jar子连接到它。 我也尝试过使用Socket.IO版本1.3.6,在列表中的第三个jar。 另外我试着改变在Android端的URL到http://10.0.2.2:3000,http://192.168.1.100:3000在这些jar子版本的每个… 笔记 – 请注意 – 我正在使用Android中的genymotion。 我有INTERNET_PERMISSION。 服务器端的socket.io在web浏览器(本地pc)上运行。 这是我的服务器端: var app = require('express')(); var bodyParser = require('body-parser'); var http = require('http').Server(app); var io = require('socket.io')(http); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended:false})); io.on('connection', function(socket){ console.log(socket.id); console.log('Client connected'); […]