Articles of socket.io

Socket.io – 监听器必须是socket.io事件的一个函数

我试图重写我的socket.io服务器,以躲闪“回拨地狱”的事情。 现在我试图听一个事件,而不是传递一个匿名函数作为callback,我想传递一个模块导出的函数。 基本上我想这样做 socket.on('joinChat', myFuncExportedByModule(/* stuff */)); 而不是这个 socket.on('joinChat', function() { /* stuff */ }); 只要我试图调用myFuncExportedByModule,节点发回给我一个“TypeError:监听器必须是一个函数”。 有任何想法吗?

我如何从快递服务器传递数据来反应意见?

我有一个简单的快速服务器连接到一个orientdb数据库。 我需要从快递中传递信息来反应意见。 例如,在expression我有: router.get('/', function(req, res, next) { Vertex.getFromClass('Post').then( function (posts) { res.render('index', { title: 'express' }); } ); }); 所以,在这个例子中,我需要在我的反应索引组件中, postsvariables设置组件的状态。 (我只在前端使用反应,而不是在服务器端) class IndexPage extends React.Component { constructor(props) { super(props); this.state = { posts: [] }; } render() { return ( <div> <Posts posts={posts} /> </div> ); } } 我如何从快递中得到回复? 我发现也许我可以从反应做一个Ajax请求,但我认为这不是最好的方法。 如果我需要以实时的方式获取post,例如使用socket.io,有什么区别? PD:在expression我有可能使用一些模板引擎像把手或霍根。 这个模板引擎可以帮助这个主题吗? […]

从内部callback中断父代函数的执行

我为Unity3D创build了一个nodejs服务器,使用socketio进行networking连接。 我有一个作为比赛室的function,当玩家离开游戏时,我想离开这个function。 玩家每创build一个新房间,都应该进入该function并重新开始。 是否有可能从一个子callback中断父执行的function? exports.initGame = function (userdata) { //do prematch stuff with userdata and execute game logic on the callbaks socket.on("something", function (someNetdata)({ // how do i stop parent function from here? }); // more socket.on callbacks } 编辑:忘了提及该function正在出口。 不知道这是否改变了一切。 编辑2:鉴于jfriend00答案中讨论的build议,我会给出一个更广泛的解释这个问题。 目前的stream量如下: 用户连接,我定义了一些“连接”callback函数。 相关的一个是startMatchMaker(Io, socket, data) 。 matchMaker为玩家创build一个空间(或者如果有空间的话join),然后继续执行前面提到的gameInit(io, socket, room, data) 。 gameInit(…)函数以空间为关键字将相关数据存储在全局数组中,例如Players[room] = […]

不能用socket.io使用非匿名方法,“listener”参数必须是一个函数

我search了这个(简单的?)问题的答案,但是我找不到任何明确的答案。 我是一个试图适应networking市场的Java开发人员,但作为一个面向对象,许多事情让我感到困扰。 io.sockets.on('connection', function (socket) { console.log("Client has connected! id = [" + socket.id + "]"); socket.on('disconnect', onPlayerDisconnected(socket)); }); function onPlayerDisconnected(socket) { socket.broadcast.emit('player_disconnected', socket.id); console.log("Client has disconnected! id = [" + socket.id + "]"); } 这里是堆栈跟踪: events.js:219 throw new TypeError('"listener" argument must be a function'); ^ TypeError: "listener" argument must be a function 如果我使用匿名function,它就像一个魅力。 问题是,如果我对(事件)数量增加做出反应,代码将无法维护。 […]

AWS ElasticBeanstalk + Socket.IO + SSL问题

我在使用AWS ElasticBeanstalk和NodeJS环境+ Socket.IO + SSL来处理我们的消息应用程序时遇到了麻烦。 我已经在试图解决这个问题的圈子里运行,但是我总是会遇到一个WebSocket握手错误(504 GATEWAY_TIMEOUT)。 AWS Elastic Beanstalk负载均衡器configuration: ELB安全入站规则 实例的安全入站规则 响应错误 前端代码 提前致谢。 任何帮助,高度赞赏!

使用相同的名称声明variables导致socket io中的问题

我花了一段时间才弄清楚是什么问题,但我想知道为什么这样做。 使用这个代码,variables播放器,播放器和套接字将是未定义的,导致错误。 var player = Player(socket.id, socket); socket.on('joinHost', function(data) { var gameID = data; player.gameID=gameID; var game = GAME_LIST[gameID]; game.players[socket.id]=player; var players = game.players; for (var p in players){ var player = players[p]; var socket = player.socket; socket.emit('playerJoined'); } }); 避免使用相同名称的variables的声明使所有工作正常。 var player = Player(socket.id, socket); socket.on('joinHost', function(data) { var gameID = data; player.gameID=gameID; var […]

删除数组中的JSON数据

我想从JSON数组中删除一段数据。 例如,我有这个数组; var users = []; io.on('connection',function(socket){ socket.on('nickname', function(nick){ socket.nick = nick; users.push({ user:socket.nick, userid:socket.id, socket:socket }); }); 我试图用这种方式删除用户; socket.on('disconnect', function(){ delete users[{ user, userid, socket }]; }); }); 我怎样才能做到这一点?

Node / Socket.io – 如何每x分钟发送一个函数/数据

我有一个使用socket.io的Node服务器。 我希望我的socket对象每分钟一次向连接的浏览器发送一些数据。 理想情况下,像setInterval()这样的东西,而不是每隔x分钟调用一次,查看时间并按分钟执行。 我想如果我想每1分钟发一次,它会看起来像这样。 var data = "someData"; io.on('connection', function (socket) { socket.emit_every_x_minutes(1, 'myData', data)} }); 这会每1分钟定期向客户端套接字发出"someData" 。 什么是正确的方式发出每x分钟socket.io ?

套接字IO V0.7:如何发送消息到一个特定的客户端

在0.6版本中,我使用这种方法将消息发送到特定的客户端组。 它将排除具有“excludedClients”数组中的会话ID的客户端,并发送给所有未被排除的客户端。 var excludedClients = [sessionID1, sessionID2, sessionID3]; io.broadcast(msg, excludedClients); 这个方法是否适用于V0.7? 这是做这个最好的方法吗? 希望有人能给我一个这样的手,似乎没有任何地方的任何可靠的文档的Socket IO,只是在github页面上简单地解释了一些例子。

无法连接并获取“未处理的socket.io url”错误与MAMP + Socket.io(node.js)

我正在MAMP服务器上开发一个使用CodeIgniter的应用程序(对于开发,现场将在LAMP上)。 我正在尝试为聊天服务器添加socket.io的实时function,但是我遇到了一些问题。 我有socket.io和MAMP独立运行,但我不能让我的客户端与我的服务器。 server.js: // Get the Socket.io module var io = require('socket.io'); console.log ( 'Chat Server started' ); // Create a Socket.IO instance, listen on 8084 var socket = io.listen(8084); // Add a connect listener socket.on('connection', function(client){ console.log ( "Server Connected" ); }); 我的客户端脚本(socket.io.js加载正常,我的控制台说:“debugging:服务静态内容”每当我加载页面): <script src="http://localhost:8084/socket.io/socket.io.js"></script> <script type="text/javascript"> // Create SocketIO instance, connect var […]