Tag: 套接字

由于ping超时原因,Socket io用户断开连接

我的网站与节点js和socket io服务器端一起工作。 一切工作正常,但一段时间后,我的客户端与ping超时的原因断开连接,我昨天晚上尝试添加更多的秒ping超时,但使其最糟糕的。 var io = require('socket.io')(https,{'logger': logger, 'pingTimeout ': 60000 * 3}); 有人遇到这个问题,可以告诉我的原因? 谢谢。

{“code”:1,“message”:“Session ID unknown”}将用户连接到socket.io进行第一次尝试

我正在使用objective-c中的socket.io开发聊天应用程序。 我正面临着丢失离线消息的问题。 该场景是当我有几个队列中的离线消息,当客户端(iOS应用程序)连接。 最初它直接断开“会话ID未知”。 以下是使用套接字连接的代码 NSURL* url = [[NSURL alloc] initWithString:@"MYURL"]; self.socket = [[SocketIOClient alloc] initWithSocketURL:url config:@{@"log": @NO, @"reconnectAttempts" : @50, @"reconnects" : @YES, @"forcePolling": @YES}]; if (![self.socket.engine connected]) { [self.socket connectWithTimeoutAfter:20000 withHandler:^{ NSLog(@"Socket Conencted"); }]; } [self.socket off:@"disconnect"]; [self.socket off:@"error"]; [self.socket off:@"add user"]; [self.socket off:@"private message"]; [self.socket off:@"connect"]; [self.socket off:@"startChat"]; [self.socket off:@"delivered"]; [self.socket off:@"user […]

通过socket.io通过websockets传输图像时负载很重

我想通过基于NodeJS的后端将图像从一个客户端传输到另一个客户端。 我每40毫秒发送一个图像到后端,然后将图像发送给另一个客户端。 我的问题是,每个客户端在后端增加5%的负载。 每个图像大约20KB。 我的前端代码如下所示: const socket = require('socket.io-client')('http://localhost:3000'); const fs = require('fs'); socket.on('connect', function () { console.log('connected'); socket.emit('room', '123456'); }); socket.on('joined', () => { console.log('joined the room'); const file = fs.readFileSync('./1902865_597805016961665_1536612023_n.jpg'); setInterval(() => { socket.emit('frame', file); }, 40); }); 后端看起来像这样: const app = require('express')(); const http = require('http').Server(app); const io = require('socket.io')(http); http.listen(3000, function […]

Socket.io:如何让每个人都获得不同的渠道?

我目前正在开发一个小网站,我想让每个人都听一个不同的频道,因为它就像一个网站,search服务器端的东西,然后回复客户端。 我想到的唯一想法就是这样的: 客户端: var randomnum = Math.floor((Math.random() * 100) + 1); socket.emit('getnumber', randomnum); // Then listen to that channel for incoming stuff socket.on(randomnum, function(msg){ […] 服务器端: socket.on('randomnum', function(randomnumget){ // Do things with it then […] socket.emit('getnumber', 'stuff'); }); 但是,这样做超过4将是一种困难,我敢肯定还有另一种简单的方法来做到这一点! 谢谢

如何从不同的主机连接到socket.io服务器?

我有一个网站说mydomain / home.php 现在我已经build立了一个NodeJs服务器在23.23.234.22 /家(/ home是一个获取路线)。 我写了socket.io服务器的代码,最后服务器正在运行。 现在我想写在home.php客户端代码将类似于下面给出的代码。 我想要的是向23.23.234.22 / home发送一个请求,当home.php打开时,我会在浏览器的控制台中看到一个套接字响应。 每次我向服务器发出请求时,我都希望这样做,不仅在服务器连接时。 我知道,用这个代码的东西是行不通的。 我不知道该怎么做 那么我需要进行哪些额外的更改? socket.js var express = require('express'); var app = express(); var bodyParser = require('body-parser'); app.use(bodyParser.json({type: '*/*'})); var server = require('http').createServer(app); app.get('/home', function(req, res){ //WRITE SOCKET SERVER CODE HERE? }); var io = require('socket.io')(server); app.use(express.static('/opt/lampp/htdocs/testproject/node_modules')); app.use(express.static('/opt/lampp/htdocs/testproject/')); io.on('connection', function(client) { console.log("connected"); client.emit("message", "Some […]

Socket.io无法从客户端连接到服务器

首先我的server.js端代码是: var socket = require( 'socket.io' ); var requestify = require('requestify'); var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = socket.listen( server ); var port = process.env.PORT || 3000; server.listen(port, function () { console.log('Server listening at port %d', port); }); 但是,此服务器代码在分配的端口中运行良好。 现在我的客户端代码是: var socket = io.connect( 'http://'+IP_ADDRESS+':3000', {query:'userId='+userId+'&orgId='+orgId}); console.log(socket); […]

Node.js语法错误

我想使用socket.io和https://socket.io/get-started/chat/用户这个链接来了解当我尝试运行node index.js 我有一个错误 const WebSocket = require('./lib/WebSocket'); ^^^^^ SyntaxError: Use of const in strict mode. at exports.runInThisContext (vm.js:73:16) at Module._compile (module.js:443:25) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Server.init (C:\WEBLER\Socket.io\node_modules\socket.io\node_modules\engi ne.io\lib\server.js:119:16) at new Server (C:\WEBLER\Socket.io\node_modules\socket.io\node_modules\engin e.io\lib\server.js:65:8) at Function.attach (C:\WEBLER\Socket.io\node_modules\socket.io\node_modules\ engine.io\lib\engine.io.js:123:16) 我看着问题。 通常人们说node.js的升级版本,当我运行node –version 答案是2.7.4我试了 npm cache […]

套接字挂起错误请求模块在nodejs尽pipeCURL正确

我使用了一个API来响应显着的超时,我总是面临Error: socket hang up在request模块在nodejs发生,虽然我可以CURL URL没有任何问题。 我试图增加请求选项中的timeout ,但没有什么好事发生。 还有别的东西,而不是超时? 我应该使用其他包而不是request ? nodejs代码: var request = require("request"); var options = { method: 'GET', url: 'https://someapiurl.com/api/search', qs: { q: 'Vanak sq' }, timeout: 12000, time: true }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); }); 错误: Error: Error: socket hang up at Request._callback […]

带会话处理的套接字。 在Post方法上创build会话。 服务器端值被设置。 但发射到客户端刷新

我已经在post方法上创build了一个会话variables。 值在服务器端设置。 var sess; app.post('/loginn', function(req,res){ sess=req.session; sess.email=req.body.email; console.log("sess.email"); // value is set here io.emit("socket email",{email: sess.email}); // To access the session in client i tried emit on post but its not accessible res.json({id : req.body.socket, user : req.body.email, message : "done" }); }); 我在访问url http:// localhost:3001 / notification时使用了会话variables 由以下代码。 app.get('/notification', function(req,res){ sess=req.session; console.log(sess); console.log("sess […]

如何通过插入查询

我已经创build了一个TCP服务器。 当请求到来时,服务器分析这些数据并从这些数据中提取mac_address。 根据mac_address Mysql查询从terminal表中select一行,并将数据推送到具有该mac_address和数据的报表。 问题是; 如果请求mac_address不在terminal表中,那么INSERT查询仍然会插入数据和terminal表包含的最后一个收到的mac_address。 我期待当服务器接收数据与未定义的mac_adress,它应该告诉; console.log('Error while performing SELECT Query.'); 主程序: var server = net.createServer(function(socket) { socket.setEncoding('utf8') socket.on('data', function(data) { var reqdata = JSON.parse(data); connection.query('SELECT * FROM terminal WHERE mac_address=?', [reqdata.mac_address], function(err, rows, fields) { if (!err) { for (var i = 0; i < rows.length; i++) { var row = rows[i]; finaldata […]