Tag: 套接字

node.js / socket.io:重新连接刷新表?

我有node.js和socket.io在DataTables表上执行实时更新。 当一行被编辑时,其他客户端看到行的更新而不刷新。 这一切都运行良好,但是我不知道如何在断开连接后将节点/套接字重新连接到服务器时自动刷新表。 目前,这是发生了什么事情: 转到包含表的页面 让设备睡眠/从服务器断开连接 打开设备电源并查看包含表格的页面 socket.io重新连接到服务器,但表不刷新以获取最新的更改。 我怎样才能得到socket.io重新连接到服务器刷新表? 理想情况下,这个过程看起来像这样: 打开设备电源 socket.io重新连接到服务器,触发CSS“Loading …”叠加,以防止用户对表进行更改 socket.io刷新表以显示最新的内容 CSS“Loading …”叠加closures 服务器端脚本: console.log('Starting the server'); var app = require('express')(); var express = require('express'); var fs = require("fs"); var server = require('https').createServer(SSL, app); var io = require('socket.io')(server); server.listen(100); io.on('connection', function (socket) { /*socket.emit('news', { hello: 'world' }); /socket.on('my other event', function […]

发射到单个客户端套接字io 1.3.2

我已经在这里看了几个答案,但我认为他们指的是旧版本的socket.io,因为他们的解决scheme没有为我工作。 我正在浏览器中获取数据 io.emit('update', data) 但它发射给所有的客户,所以当我去到相同的URL时,相同的数据显示在多个窗口中。 是否需要在连接时将客户端ID存储在某个地方,还是可以在排放之前将其还原? 请具体说明。 我尝试了几个其他的解决scheme,但我得到了很多ReferenceError'id'没有定义或套接字而不是套接字。 服务器设置和连接: var app = express(); var server = require('http').createServer(app) var io = require('socket.io')(server) app.get('/aPath', function (req, res, next) { res.writeHead(200) var data = { "val1": req.query.val1, "val2": req.query.val2, "val3": req.query.val3, "val4": req.query.val4, "val5": req.query.val5, "val6": req.query.val6, } /*console.log(io.sockets.id)*/ //io.to(io.sockets.id).emit('update', data) //io.sockets.socket(id).emit('update', data) io.emit('update', data) res.end("OK") }) io.on('connection', […]

在服务器和任意NodeJS进程之间创buildWeb套接字stream

在localhost:5000上运行服务器,我想通过web套接字从另一个NodeJS进程连接到该服务器。 从我的networking套接字的经验,我总是需要服务器对象来创build一个Web套接字服务器。 var http = require('http'); // create http server var server = http.createServer(function(req, res) { // serve files and responses … }); // Socket.io server listens to our app var io = require('socket.io').listen(server); // Send current time to all connected clients function sendTime() { io.sockets.emit('time', { time: new Date().toJSON() }); } // Send current […]

找出一个套接字是否为null

如何找出一个套接字= null或未定义 我想要实现的例子 if(socket.username == NULL){ givenulldata() } 这是我的sockets删除断开连接,但有时用户还没有真正离开网站,我不想惹恼他们请刷新页面的东西,当它不需要。 由于删除笔记本电脑上的电池没电或无线连接断开和重新连接(移动设备更常见的问题)等 socket.on('disconnect', function(data){ if(!socket.username) return; delete username[socket.username]; });

什么时候使用http over web套接字更合适?

我使用的是带有MEAN堆栈的Socket.IO,它对于低延迟和双向通信非常好,但是如何将它用于相对静态的数据以及dynamic性呢? 我的假设是,发送更多dynamic内容会更加方便。 这就是说,一旦套接字连接build立起来,通信的数量有多相关呢? 在用户与应用程序直接交互的过程中,当连接不断build立时,是否有一段时间更适合使用http? 谢谢!

根据客户端POST表单的开关切换套接字

在我们的数据处理API控制器中,根据客户端填写或未填写 POST FORM的POST FIELDS,我们有CASE SWITCH套接字。 问题是:什么是最简单的方法来确定正确的CASE根据张贴字段。 假设我们在客户端POST FORM上有六个不同的字段 计算总共64个的所有可能性 在Sails中,我们正在寻找最有效的方式来标记每个组合 ,以便切换大小写,然后在API控制器中路由每个组合 。

使用Node.js和Socket.IO单击jQuery函数

我已经创build了一个简单的聊天应用程序推荐(工作正常),但我很难找出如何启动与Socket.IO跨networking套接字的jQueryfunction。 例如,我有一个button来点击: <button id="button"> Click me! </button> 我希望我的button在被点击时执行一个函数: $("button").click(function() { doSomething(); }); 这里是我在客户端的一个例子 var socket = io.connect('http://localhost:3000'); function doSomething() { $('body').css({ background: "red" }); } 这是我在服务器端(我的server.js文件) – 我认为这可能导致部分问题: var io = require('socket.io'), connect = require ('connect'); var app = connect().use(connect.static('public')).listen(3000); var commands = io.listen(app); commands.sockets.on('connection', function (socket){ // Possibly insert handler here? }); 以防万一我不明确的目的 – […]

套接字io内的callback

当执行数据需要很长时间时,我遇到了socket问题。 例如: socket.on('start', function(input){ var output = foo(input); //taking a very long time to get data, networking etc. console.log("this is ending", output); socket.emit('end',output); }); 看来,如果执行foo(input)需要很长时间,nodejs实际上会首先发出输出,而它仍然是空的。 我怎样才能确保在排放之前先完成执行? 我这样修改 socket.on('several',function(meterIDArray){ console.log("I have receiever meterIDArray",meterIDArray); meterIDs = meterIDArray.meterIDs; foo(meterIDs,function(Datasets){ console.log("This is datasets",Datasets); socket.emit('Datasets',Datasets); }); }); 我像这样修改了我的foo function foo(meterIDs,callback){ //this is what I meant by a long call. var […]

带有多个命名空间的Socket.io?

我有一个路由,听一个特定的路由ID。 /** * Chat app routes. */ app.get('/games/:id', gameChatController.chatRoom); 根据路由id我可以确定聊天是什么游戏。 我的问题是如何使用此传递到socket.io? 斌/ WWW /* * setup socket.io, and socket-session */ var socketIO = require('socket.io'); var io = socketIO(server); var SessionSocket = require('session.socket.io'); var sessionSockets = new SessionSocket(io, app.sessionStore, app.cookieParser); var setEvents = require('../events'); setEvents(sessionSockets); 事件/ index.js 'use strict'; var redis = require('redis'); var sub = […]

Socket.io – 无法从客户端发送消息到服务器端

我有两个文件 – 的index.html index.js 在index.html中 ,我有一个文本框。 我想在文本框上显示input到控制台的消息(node.js的命令提示符)。 在index.html中 ,我写了这个 – <script> var socket = io(); $('form').submit(function(){ socket.emit('chat message', $('#m').val()); $('#m').val(''); return false; }); </script> 在服务器端,在index.js中我使用了这个 – socket.on('chat message', function(msg){ //here is the listener to the event console.log('message: ' + msg); }); 但是,消息没有显示在控制台中。 我的代码有什么问题? 如果需要请参考下面的文件。 index.js var app = require('express')(); var http = require('http').Server(app); var io […]