Articles of 套接字

如何使用NodeJS中的http模块在同一端口上打开IPv4和IPv6套接字?

我正在运行以下的NodeJS服务器代码: var express = require('express'); var path = require('path'); var fs = require('fs'); var bodyParser = require('body-parser'); var http = require('http'); var ejs = require('ejs'); var app = express(); //configure the app app.set('port', process.env.PORT || 3000); // set the view engine to ejs app.set('view engine', 'ejs'); app.use(bodyParser.raw()); app.use(bodyParser.urlencoded({ extended: true })); app.use(function(req, res, next) { […]

如何使用swift创build聊天应用程序

您好工作在一个应用程序,需要发送一个消息,以便以下示例https://www.appcoda.com/socket-io-chat-app/它工作正常,但是这个代码在模拟器上成功工作。但是,当我试图在iPhone设备上运行它,没有连接,我知道这个应用程序将无法正常工作,除非连接到相同的networking作为您的Mac和运行在Mac上的Socket.IO服务器。 192.168.XX地址是本地networking地址。现在我希望我的应用程序能够全部工作,所以帮助我去这个过程,否则请参考一些其他工作良好的示例,但我不想使用firebase

如何识别连接到套接字的两个用户,并将其join到一个房间? Socket.io

所以这里是情况,我需要为我们的数据库中存在的两个人创build一个空间。 问题是我不能根据他们的套接字来识别这些用户。 假设有两个随机用户user1和user2。 现在,用户1想要发起与用户2的聊天,所以当用户1发起并将两个用户join该房间时,我需要创build一个房间。 以下是套接字join房间的问题,并且socket.id随着来自同一主机的重新连接而改变。 所以,我不知道如何joinuser2到房间。 这是代码。 export default function(socketio) { let sockets = []; let people = {}; const findUserById = function findUserById(data) { for (let x in people) { if (people[x].userId === data) { return x; } } } /** * [createRoom Creates a room for two users] * @param {[type]} data1 [Mongoose […]

在串口上获取新旧数据 – Arduino uno,nodejs,socket.io和传感器

我已经附加了一个传感器到arduino,我试图把这些数据使用一个串口进入Nodejs。 我将用它来制作图表。 从串口推送的数据,在terminal上打印时看起来像这样: 1,2 1,2 1,3 1,2 1,3 1,4 1,2 1,3 1,4 1,5 正如你可以看到所有以前的数据再次推动:/我不想要的 预期产出 1,2 1,3 1,4 1,5 1,6 格式在这里: <value 1> , <value 2> 稍后我将分解这些传入的数据,并将其推送为2个不同的数据集,以便得到如下graphics: http://www.chartjs.org/samples/latest/charts/line/multi-axis.html 代码 – nodejs var SerialPort = require("serialport"); var serialport = new SerialPort("COM4"); var received = ""; serialport.on('open', function(){ console.log('Serial Port Opend'); serialport.on('data', function(data){ received += data.toString(); console.log("incoming […]

Express Js将原始http2头信息写入res对象套接字

我需要得到一个原始的套接字后,在我的网站上的具体url的请求,我有这样的逻辑,即时运行使用spdy的http2服务器: bin.js: var app = require('../app'); var debug = require('debug')('http2-nodejs-test:server'); const spdy = require('spdy'); const path = require('path'); const fs = require('fs'); var port = normalizePort(process.env.PORT || '443'); app.set('port', port); const options = { key: fs.readFileSync('privkey.pem'), cert: fs.readFileSync('fullchain.pem'), ca : fs.readFileSync('chain.pem'), spdy: { protocols: [ 'h2'], plain: false } } spdy.createServer(options, app).listen(port); 在我的app.js中有路由逻辑: var express […]

C#Winforms Socket.IO到NodeJS服务器

这是我的服务器脚本: var express = require('express'); var mysql = require('mysql'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); app.set('port', 3000); io.on("connection", function (socket) { var testData = { arg1: "ARG1", arg2: "ARG2" } socket.on("TEST_MSG", function (data) { console.log("got message: "+data.arg1+", "+data.arg2); socket.emit("TEST", testData); }); socket.on("disconnect", function () { console.log("user disconnected"); }); }); […]

如何closuresAngular 2/4 +和Socket.io中的websocket

我试图创build一个使用websockets的应用程序,但是遇到了可怕的“多重连接”问题,每次页面重新加载而不是closures并重新打开一个新的websocket,另一个连接只是添加到列表中。 我的问题是,如果有人知道从Angular 2/4 +closuresSocket.io websocket的最佳/正确的方式。 至于代码,这是我所拥有的: service.ts getUserSocket(userID: string): Observable<any> { return new Observable(_Observer => { // Setup the socket namespace subscription this.UserSocket = io(NTC_API_URL + `/user/${userID}`, { secure: true }); this.UserSocket.on('message', _Message => { console.log(_Message); }) }) } closeUserSocket() { this.UserSocket.disconnect(); this.UserSocket.close(); } component.ts ngOninit() { // Setup the User Socket this.UserSocket = this._UsersService.getUserSocket(this.currentUser.userID) […]

Typescriptasynchronous生成器,用于套接字

我想了解TSasynchronous生成器。 在Node.js中,我打开一个套接字,从中读取所有数据,然后closures它。 我试图把这个成为一个asynchronous生成器的数据块。 async function* connectAndRead() { const socket = net.connect(80, 'localhost'); socket.on('data', data => ???); socket.on('end', socket.close()); } 有可能做一个asynchronous发生器的数据从套接字读取?

通过套接字客户端返回variables

我有以下问题。 我怎样才能从另一个JS文件返回一个新的值到套接字? App.js io.on('connection', function (socket) { socket.currentRoomId = 0; socket.currentRoomName = "Loading…"; socket.currentRoomOwner = 1; socket.currentRoomEntry = 1.1; }); RoomManager.js adapter.query(sql, function(err, rows) { rows.forEach( (row) => { socket.currentRoomId = parseInt(row.Id); socket.currentRoomName = row.room_name; socket.currentRoomOwner = row.room_owner; socket.currentRoomEntry = row.room_entry; }); }); 问候。

socket.io不工作没有错误显示

我正在使用node.js,socket.io和express来处理聊天应用程序。 我正在使用pm2来运行server.js。 在日志上说 0|server | 18-08 12:14:47.128: Server listening on port 3000 在控制台中也没有错误。 这是我的代码。 请忍受我,因为我仍然是一个新手在node.js和socket.io。 每一个帮助将不胜感激。 server.js process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; var app = require('express')(); var https = require('https'); var fs = require('fs'); var ssl_server_key = '/data/web/chat/app/node/server_key.pem'; var ssl_server_crt = '/data/web/chat/app/node/server_crt.pem'; var server = https.createServer({ key: fs.readFileSync(ssl_server_key), cert: fs.readFileSync(ssl_server_crt), NPNProtocols: ['http/2.0', 'spdy', 'http/1.1', 'http/1.0'] }, app); […]