Tag: socket.io

帆0.9.4,socket.io,新手

刚开始使用Sails&Socket.io。 我正在关注这些文档,并在这里设置一个简单的testing项目: https://github.com/timfulmer/sails-sockets 根据Sails docs, http: //sailsjs.org/#!documentation/sockets,套接字订阅在第一个socket调用中被设置: socket.get(),socket.post()等是在新的Sails项目中包含的客户端SDK中可用的方法。 在这个例子中,我们将使用它们通过Socket.io与后端进行通信。 请注意,无论您是否使用CRUD蓝图,都可以使用这些方法。 testing项目使用CRUD方法定义了一个快速模型/控制器。 它使用socket.get连接到套接字,并正确接收之前发布的模型实例。 使用socket.post发布一个新的实例将它传递给Sails服务器并创build新的实例。 但是,新实例永远不会发送到使用socket.get创build的连接。 即使在两个不同的浏览器选项卡中运行页面。 另外,使用来自浏览器的GET请求进行发布会挂起,并且永远不会返回。 我是不是正在阅读文档,或者做一些其他的newb错误? 谢谢, – Tim

socket.io每秒发射一次

真的很快问题。 我正在创build一个同步stream媒体应用程序,所以我想通过socket.io发送每秒播放的当前时间码并将其广播到其他客户端。 这是明智的吗? 每秒拨打同一个电话有什么缺点,我可以同时拨打其他电话吗? PS我没有做任何数据库调用或做任何处理服务器端。

客户端的JavaScript代码replace

我现在正在学习一些新技术(比如node.js,socket.io,redis等),并且做一些简单的testing应用程序来看看它是如何工作的。 我的问题是关于客户端JavaScript代码的安全性:例如,我有一个聊天服务器上node.js + express,当用户连接到这个聊天,服务器应该分配他的注册用户名(通过老生常用php + mysql授权被使用)到他的sockets。 问题是,用户可以修改他的客户端脚本,并连接到不同的用户名下的聊天? 下面给出一些代码: (分配用户名的服务器端部分,只是从客户端调用获取用户名) // when the client emits 'adduser', this listens and executes socket.on('adduser', function(username){ // store the username in the socket session for this client socket.username = username; // store the room name in the socket session for this client socket.room = 'General'; // add the client's username […]

Socket.io:如何正确处理函数参数?

我想如下设置套接字参数(nick) socket.on('something', function(who){ socket.nick = who; //something }); 下面的代码返回undefined到客户端,这是这里的问题。 但是当我这样做… socket.on('something', function(who){ socket.nick = 'who'; //something }); 这返回给所有人的“谁”。 有没有办法让上面的代码片段工作?

如何获得NodeJS客户端ID?

运行NodeJs我可以看到一种客户端ID: debug – emitting heartbeat for client hg5ZurBEi8R3Ehf5kuBJ debug – websocket writing 2:: debug – set heartbeat timeout for client hg5ZurBEi8R3Ehf5kuBJ debug – got heartbeat packet debug – cleared heartbeat timeout for client hg5ZurBEi8R3Ehf5kuBJ debug – set heartbeat interval for client hg5ZurBEi8R3Ehf5kuBJ 我正在使用socket.io。 有一种方法可以得到“hg5ZurBEi8R3Ehf5kuBJ”? 一种app.session_id。

由node.js服务中的socket.io事件使用的套接字

我恐怕这很难解释,说实话,我真的不能期望任何人经历这一切,但我不知道如何解释它。 我似乎有问题链接到一个node.js socket.io服务的用户名到套接字。 我采取了一个相当标准的聊天样本,我发现并修改了我的需求和拥有 一直试图从一个JavaScript客户端testing其性能。 客户端应用程序有一个用户界面,允许它指定要build立多less个连接,然后点击一个 button打开所有的连接。 当connect事件在客户端触发时,我发送一个用户名(“用户”+连接号),并尝试在服务器上处理这个事件。 在客户端中,当我连接时使用“强制新连接”选项,以便使用新的连接而不是重新使用以前的连接。 我这样做是允许的 性能待测。 我遇到的问题是在服务器上使用的事件似乎有错误的套接字对象(最后一个连接的客户端)。 我可以看到为什么会发生这种情况 asynchronous的原因,但我无法解决它。 这是我的小型服务器应用程序: var httpd = require('http').createServer(); var io = require('socket.io').listen(httpd); io.sockets.on('connection', function (socket) { noOfConnections = noOfConnections + 1; console.log('SocketID ' + socket.id + ' connected. Connections = ' + noOfConnections); socket.on('login', function(UserName) { socket.set('UserName', UserName, function(err) { if (err) { throw […]

Sequelize updateAttributes在socket.on('disconnet')中不起作用

我想更新客户端从套接字断开的时间。 然而,下面的代码给我“没有方法”indexOf'“行”查找({其中:{room_id:roomId}})“。 有人知道为什么吗? 谢谢! var roomId; roomId = socket.on('updateStartTime', function(roomId) { //some code return roomId }); socket.on('disconnect', function() { var date = new Date(); Room.find({ where: { room_id: roomId } }).complete(function(err, room) { if (err) console.log(err); room.updateAttributes({ end_time: date }).success(function(room) { console.log("end_time: " + room.end_time); }); }); socket.broadcast.emit('updateChat', 'SERVER', socket.username + ' has disconnected…'); }); […]

使用SocketIO4Net从.NET应用程序传递函数callback到node.js

我想在运行node.js的服务器上调用一个方法。 为此我添加了SocketIO4Net.Client到我的C#项目,但我不知道你通过'函数(callback)'通过方法Emit。 我尝试了几个东西,但我总是得到JSexception'TypeError:对象不是一个函数'。 JS服务器(或在这里https://github.com/hobbyquaker/ccu.io/blob/master/ccu.io.js#L1756 ) socket.on('getObjects', function(callback) { loggerlogger.verbose("socket.io <– getObjects"); callback(regaObjects); }); 代码在客户端 public Task<string> GetObject() { Console.WriteLine("Send GetObject"); var taskCompletionSource = new TaskCompletionSource<string>(); dynamic doStuffJs = new Action(() => Console.WriteLine("Hello 0")); _client.Emit("getObjects", doStuffJs, null, new Action<Object>(Callback)); return taskCompletionSource.Task; } private void Callback(object o) { Console.WriteLine("Hello 1"); } Doku方法发射 /// <summary> /// <para>Asynchronously sends […]

你如何将php会话数据传递给socket.io?

我正在编写一个应用程序,用户可以同时从多个浏览器login,并在页面加载时build立到服务器上的socket.io连接。 我想跟踪所有的客户端套接字ID, socket.id ,在一个redis集合中,其键值看起来像userId:???:socketClientIds为login用户。 我想SADD的套接字客户端ID后,通过AJAX调用PHP脚本的Redis设置。 由于我保持用户名在PHP会话variables$_SESSION['userId'] ,什么是安全/实用的方式,我可以将此用户ID的值传递给socket.io所以我可以将客户端ID添加到集? client.sadd("userId:???:socketClientIds", socket.id) 我不能相信客户端为userId提供准确的值,因为它可能是伪造的。

如何在服务器上configurationsocket io以从ios套接字获取应答(SocketIOCallback)

我正在用node.js和socket.io在ios上开发一个聊天应用程序。 我使用SocketIOCallback发送确认。 但是我没有得到任何确认server.js。 这是我用来发送确认的代码 SocketIOCallback cb = ^(id argsData) { NSDictionary *response = argsData; // do something with response NSLog(@"ack arrived: %@", response); }; [socketIO sendEvent:@"message" withData:values andAcknowledge:cb]; server.js socket.on('message', function(postMessage,callback){ console.log(callback); //callback('okkk'); console.log('username–>'+ socket.username); console.log('ID–>'+ socket.id); io.sockets.emit("pvt",socket.username,postMessage+socket.username); io.sockets.emit("pvt",socket.username,postMessage+socket.username); }); 当打印console.log(callback)在terminal显示未知 如何configurationserver.js从ios应用程序获取这些确认。 或者如何将确认从服务器发送到ios应用程序,反之亦然请帮助我解决这些问题的例子。 提前致谢