Tag: 套接字

跟踪客户端上的Nodejs服务器进度

我有一个服务器在nodejs上传一个大型数据文件的地方。 我在客户端上使用angular-file-upload来做这件事,这有助于我通过一组callback函数来跟踪上传进度。 但是当上传完成时,服务器开始处理数据(转换格式并上传到用户指定的数据库)。 我想跟踪这个进度以及上传的同样方式,启动另一个进度条。 什么是正确的方法来做到这一点? 通过互联网,我明白,套接字可能是要走的路。 这是否使我的angular度file upload过时,还是有另一种方式来做到这一点? 上传完成后是否build立新连接,还是使用上传连接,并将进度信息返回给客户端? Socket.io确实有一套关于如何设置聊天发送消息给客户端的很好的教程,但是这并不能真正覆盖我更复杂的情况。 任何正确的方向指针将非常感激。

NodeJSsubprocess无法发送net.socket fd:3

当编写一个nodejsmultithreading包的时候,主线程可以通过fd:3发送内容,线程可以收到这个消息,但是线程不能通过fd:3发送任何东西 有什么我做错了吗? (line threader.js:45-59是问题显示的地方) 包 (现在只有在github上才能使用) 启动代码: var Thread = require("threader"); var task = Thread.task(function(){ //Do some calculation }, function(){ //When the calculation response has been sent }); task('a', 2);

亚马逊Alexa:从SmartHomeSkill lambda控制TCP设备

我有一个用lambda模板创build的SmartHomeSkill。 我有另一个lambda是一个普通的技能function。 我正在使用NodeJS。 我使用Node中的套接字通过TCP直接连接到本地路由器。 一个简单的Lambda使用套接字连接:工程! 技能Lambda使用套接字连接:工作! 技能Lambda使用aws-sdk调用另一个Lambda(来自步骤1):工作! 使用SmartHomeSkill调用套接字:不起作用! 使用SmartHomeSkill调用另一个Lambda:不起作用! 我为所有人使用相同的IAMangular色。 所以,因为情况1到3工作,我认为我的angular色是好的。 我正在使用一个自定义的lambda调用的政策。 我的SmartHomeSkill使用AWSangular色进行身份validation,并使用令牌和一切获得有效的请求。 我的lambda和TCP设备都没有任何身份validationfunction。 TCP设备是自制电子产品。 它适用于普通的lambda和本地软件。 唯一的一件事是:只要我切换到SmartHomeSkill模板什么也没有。 但是,技能本身的作品。 我可以发现设备,Alexas发送调用请求而不抱怨。 我logging了很多东西,所有东西都看起来不错。 在这两种情况下,使用plai TCP套接字或HTTP调用另一个lambda它什么也不做,没有错误,没有响应。 问题:SmartHomeSkill以某种方式使用出站连接受到限制。 但是,如果它连接到其他设备,如Phillips Hue? – 这是我的(完美的)inter-lambda接受HTTP负载并重新发送它使用TCP: var net = require('net'); exports.handler = (event, context, callback) => { console.log(`event=${event}`); var payload = event.payload; sendKnx(payload.ga, +payload.v); // TODO implement callback(null, 'Hello from Lambda'); }; // —- […]

Miroservices与sockets之间的服务间通信

我目前正在为以下场景devise一个系统:数据从客户端stream式传输,由多个服务依次处理(不平行)。 然后,在分析数据的同时将数据传输回客户端。 在这个过程中服务器返回客户端部分分析的数据是非常重要的(这就是为什么我需要套接字)。 客户端甚至可以在服务器分析过程中发送更多的信息,这可能会影响分析结果。 我制作的高级素描 我已经做了大量的研究,我看到只有REST微服务或使用各种消息队列的套接字asynchronous处理。 我还没有看到任何人在这些服务之间直接使用这么多打开的套接字来实现微服务。 现在我的问题是:我在这里做正确的事情吗? 在我所有的服务器之间打开套接字是错误还是不可靠?

如何configuration套接字io和套接字io客户端

美好的一天 我需要通过单位的服务器连接大量的PC到主服务器 我有东西,但我没有完成 主服务器 socketIo = require("socket.io"), ioServer = socketIo(server), ioServer.sockets.on("connection",function(socket){ // Display a connected message console.log("Server-Client Connected!"); // When we receive a message… socket.on("message",function(data){ // We got a message… I dunno what we should do with this… console.log(data); console.log(data.from + " is connected with ip " + data.ip); socket.emit('message', { 'from': '10.19.17.101', 'answer':'I already […]

使用socket.io处理socket.emit()错误

我在用 $('btn').click(function() { socket.emit('load more', function (objs) { // do something }); }); 在客户端从服务器获取对象。 但是有时候连接会丢失,没有任何反应。 我怎样才能使error handling,使我可以告诉用户,服务器不回答,而不是让事情发生,因为它是现在? 编辑 所以我想要的是类似的东西 $('btn').click(function() { var emit = socket.emit('load more', function (objs) { // do something }); if (!emit) { console.log("It didn't work. Maybe you lost connection or the server is not running."); } }); 我知道我不能这样做,但是使用承诺还是可以的?

结合套接字,并使用快递中间件时expression?

有没有办法让一个请求的套接字内的一个快递中间件? 即: import express from 'express'; import io from 'socket.io'; const app = express(); // combine app and io somehow … // When client makes a GET request to '/emit/to/self', that client's socket will recieve the 'hello:world' message. app.get('/emit/to/self', (req, res) => { req.socket.emit('hello:world', { … }); res.send('You just triggered your own socket!') }) 这个想法是expression中间件有一个req.socket属性引用来自同一客户端的连接套接字。 […]

socket.io客户端连接断开反复

如果多个socket.io服务器(ALB平衡)客户端连接并断开两个节点的“传输错误”。 理想情况下,它应该连接到一个节点,并保持连接到该节点。 在ALB中有一个节点的情况下,连接保持持久性。 任何帮助?

Socket.io与多个选项卡同步

我有一个聊天,写在node.js和socket.io上。 目前我在浏览器中同步用户标签。 我注意到,如果用户发送事件到服务器和服务器上,我将事件响应给除了当前套接字(socket.broadcast.to)以外的其他用户,那么响应将发送给当前用户(发送请求)在其他选项卡。 任何build议,以避免这一点?

从socket.io获取断开连接的用户

我在Node.js上写了一个实时聊天系统 用户连接服务器的地方我正在创build独特的哈希键[一次创build],并join他在新的聊天室。 我想显示用户是否在线。 而用户断开sockets,我无法得到用户的聊天室,所以我无法find用户在线或不。 请build议有没有更好的方法来做到这一点。 Server.js socket.on('newUser',function (user) { chat.createChatRoom(con, user.email, user.phone, function (res,user_id,chatToken) { chatToken="TOK"+chatToken; //Here we using TOK for some identical purposes chatRoom(socket,chatToken,1); io.sockets.in(chatToken).emit('newUser', {chatToken:chatToken,user_id:user_id,response:res,rooms:io.sockets.adapter.rooms}); io.emit('userConnects',chatToken); console.log(JSON.stringify(io.sockets.adapter.rooms)); }); }); 创build聊天室function: var createChatRoom = function (con, email, phone,callback) { var chatToken = require('crypto').createHash('md5').update(email).digest("hex"); con.query("SELECT * FROM USER WHERE `email`='" + email + "'", function […]