簡體   English   中英

Javascript Socket.IO-傳遞給其他對象時,套接字為空

[英]Javascript Socket.IO - Socket empty when passing to other object

我正在嘗試將套接字對象提供給我的“ ConnectionHandler”類,但是在使用此套接字對象時會出現以下錯誤:“無法讀取未定義socket.io的屬性套接字”。

服務器類:

 Server.prototype.handleConnections = function () { this.queueTime = 15; // Queue time in seconds var that = this; // Create a global variable of the server object // On incoming connection this.io.on('connection', function (socket) { console.log('connection incoming...'); // Log a message to the server console // When a client tries to join the queue socket.on('client_join_queue', function (username) { // Check if the username is valid if (! (username.length < 3)) { var newPlayer = new player(username); var connectionHandler = new connectionHandling(socket, that, newPlayer); that.connections.push(connectionHandler); } }); }); } 

ConnectionHandler類:

 'use strict'; var ConnectionHandler = function (_socket, _server, _player) { this.socket = _socket; this.server = _server; this.player = _player; this.server.queueHandler.addPlayer(this.player); this.server.connections[0].socket.emit('player_joined_queue', this.player, this.server.queueHandler.getQueue().length); var that = this; socket.on('disconnect', function () { console.log("user disconnected"); console.log("queue:", that.server.queueHandler.getQueue()); }); } module.exports.ConnectionHandler = ConnectionHandler; 

我絕對不知道我在做什么錯。

fljs在說什么,您正在發出一個名為“ player_joined_queue”的事件。 但是您正在監聽事件“ client_join_queue”。 您需要使用發出的同名名稱監聽事件。 因此,您需要更改一個或另一個。 例如,

socket.on('player_joined_queue', function (username) {
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM