Articles of socket.io

创build – 反应 – 应用程序npm运行构build太慢

我对使用React相对来说比较新,并且正在学习create-react-app教程。 我正在Node环境中使用socket.io,React和Express创build一个简单的networking聊天服务。 我已经写完React应用程序的大部分function,现在正在服务器端通过Socket.io连接应用程序。 在前端工作是因为我可以运行“npm start”服务我的应用程序的开发版本。 但是,现在我在服务器端工作,实现Socket.io,每当我在前端发现问题时,我必须重新运行“npm run build”,每次需要15-30秒。 我确信有一个更快的方法来debugging这样的问题,而不必每次都编译我的反应的应用程序到静态文件。 请指教。

Node.js Socket.io聊天示例不起作用

我刚刚开始与node.js,我在我的主机上安装节点,添加一些插件,我下载socket.io示例聊天 https://github.com/socketio/chat-example.git 当我运行它(节点index.js)我听到控制台上“聆听*:3000”的警报,它看起来像一切都会工作,但是当我到我的网站上端口3000(coracko.com:3000)聊天是可见的但消息不发送,也没有发生。 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var port = process.env.PORT || 3000; app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); }); io.on('connection', function(socket){ socket.on('chat message', function(msg){ io.emit('chat message', msg); }); }); http.listen(port, function(){ console.log('listening on *:' + port); }); <!doctype html> <html> <head> <title>Socket.IO chat</title> <style> * { […]

如何连接到“主机:端口”,但没有使用浏览器,只是节点JS / Javascript?

为了与服务器(使用节点js创build)保持一致,我们打开浏览器并打开一些类似于以下代码的文件: <script src="http://127.0.0.1:8080/socket.io/socket.io.js"></script> <script type="text/javascript">/*<![CDATA[*/ var socket = io.connect('http://127.0.0.1:8080'); // Send messages to server: function envioas(){ socket.emit('operepues', 'envio'); } // Listen messages from server: socket.on('rdsdo', function(data){ document.getElementById('msj').innerHTML = data }); /*]]>*/</script> <div id="msj"></div> 但请,只需要从服务器的file.js创build这个连接! 我需要听服务器的消息,并发送消息到端口8080服务器从其他server.js端口666或任何其他… 我尝试着: …code JS… io = require('socket.io'); socket2 = 'http://127.0.0.1:8080'; var socket2 = io.connect(socket2); socket.emit('send_to_emit', typeof(socket2)); …code JS… 而且EVER'send_to_emit'是“未定义的”。 我需要连接从file_server01.js(服务器01中的文件JS / […]

通过套接字客户端返回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; }); }); 问候。

Laravel Echo Server抛出“无法设置属性'socketId'的未定义”

如果我连接到一个公共频道,一切正常。 但是,如果我连接到一个存在或私人频道,我每次都会收到以下错误。 UnhandledPromiseRejectiionWarning:未处理的承诺拒绝(拒绝ID:[某些数字]):TypeError:无法设置您的属性'socketId'未定义。 之后,我不再收到任何广播给用户的事件。 用户通过身份validation并join收听频道,但他们没有收到任何事件。 我正在使用Laravel Echo Server 1.3和Laravel 5.4以及Laravel Echo JS 这里是我得到的屏幕截图: 任何人都知道是什么原因造成的,我怎样才能修复它? 先谢谢你!

使用Node js来构build实时的android应用程序

我想开发两个相互关联的应用程序。 一次邮递员的应用程序,另一个是用户谁想要使用邮递员的任务。 我使用使用socketio的节点js服务器。 我想在用户应用程序中显示他们在位置约束(定义特定的treshould)几个postmans。 当用户点击他的地图并改变他的位置时,邮差位置应该在用户地图中更新并显示给他。 这是我的问题devise一个写senario来开发这个应用程序。 对我来说重要的是在服务器和数据库中存储的数据中专门编写一个最佳代码。 第一个senario我有,当用户改变他的位置发送他的位置到服务器和服务器应该得到邮递员的位置,这是在我不同的阶段,但我认为这不是最佳的,因为当邮政实时地图移动时,服务器应该存储他们的位置,然后取出那些显示在用户的应用程序。 第二个是服务器向所有邮递员的应用程序播放,并在邮递员的应用程序端检查,如果它是真的发回他的位置服务器。请给我一个写senario来发展这种情况。 先谢谢了

使用Socket.io刷新页面上的数据而无需重新加载

我试图做一个实时的应用程序,我发布了一个存储在数据库中的消息,然后该消息必须显示在同一页面上,而不刷新页面refreshH。 我的日志说,我的套接字的连接工作,但我发送消息后,页面自动刷新。 这是我的控制器,我在这里工作: postPublicacion : function(req,res,next){ var currentdate = new Date(); var datetime = currentdate.getFullYear() + "-" + currentdate.getDate() + "-" + (currentdate.getMonth()+1) + " " + currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + currentdate.getSeconds(); console.log(datetime); var publicacion = { id_user : 1, publicacion : req.body.post, imagen : null, fecha_pub : datetime }; var […]

新的实例与标准函数内存使用socket.io事件

我使用typescript和socket.io。 标准解决scheme如下所示: socket.on('event', (msg: any, cb:Function) => self.eventFn(msg, cb)); 由于许多asynchronous调用堆栈(300 – 600行,8 – 10深度),事件的function太长和深。 为了解决这个烦人的代码devise,我开始考虑使用类而不是像这样的函数: socket.on('event', (msg: any, cb:Function) => new EventClass(msg, cb)); 在这种情况下,我可以将进程的一部分分成小单元,我猜可能代码重用性也更好。 这看起来不错,但是,我担心这是使用更多的内存,因为我在每个套接字事件上创build一个新的实例,也许它也使用更多的CPU。 所以,问题是:我的恐惧是否合法?

Socket.IO,SSL问题与cloudflare

我有一个socket.io应用程序,基本上从前端接收信号,以杀死和启动一个新的ffmpeg进程(基于.spawn())。 一切都像预期的那样工作,但是我经常从cloudflare中得到一个525错误。 错误消息是:Cloudflare无法build立与原始服务器的SSL连接。 它的工作原理是10次中的9次。我注意到,只要kill + spawn完成,就会出现更多的这些错误。 难道是事件阻塞事件循环,并因为这阻止所有传入的请求和cloudflarelogging这些握手失败错误? 联系cloudflare支持让我回到这个信息(这是他们对我的服务器的要求): Time id host message upstream 2017-08-16T09:14:24.000Z 38f34880faf04433 xxxxxx.com:2096 peer closed connection in SSL handshake while SSL handshaking to upstream https://xxx.xxx.xxx.xxx:2096/socket.io/?EIO=3&transport=polling&t=LtgKens 我现在正在debugging一段时间,但似乎无法自己find解决scheme。 这是我如何初始化我的socketIO服务器。 /** * Start the socket server */ var startSocketIO = function() { var ssl_options = { key: fs.readFileSync(sslConfig.keyFile, 'utf8'), cert: fs.readFileSync(sslConfig.certificateFile, 'utf8') }; self.app = […]

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); […]