首页 > 解决方案 > Socket.IO 发射不发送

问题描述

我目前正在使用 Socket.IO 和 Javascript 构建游戏。我原本想做一款实时多人游戏,但是很快就遇到了问题。我最终放弃并转向了回合制游戏,但问题仍然没有消失。

问题是服务器(app.js)没有从客户端(game.js)发出。我尝试重新创建项目console.log,并搜索谷歌无济于事。

应用程序.js

require('./Database');

var express = require('express');
var app = express();
var serv = require('http').Server(app);

app.get('/', function(req, res) {
    res.sendFile(__dirname + '/client/index.html');
});
app.use('/client', express.static(__dirname + '/client'));
serv.listen(process.env.PORT || 2000);
console.log("Server started.");

var SOCKET_LIST = {};


var io = require('socket.io')(serv, {});
io.sockets.on('connection', function(socket) {
    socket.id = Math.random();
    SOCKET_LIST[socket.id] = socket;

    socket.on('signIn', function(data) {  // {username,password}

        Database.isValidPassword(data, function(res) {
            if (!res)
                return socket.emit('signInResponse', { success: false });
            Database.getPlayerProgress(data.username, function (progress) {


                socket.emit('signInResponse', {
                    success: true, username: data.username,
                    progress: progress
                });
            })
        });
    });
    socket.on('signUp', function(data) {

        Database.isUsernameTaken(data, function(res) {
            if (res) {
                socket.emit('signUpResponse', { success: false });
            } else {
                Database.addUser(data, function() {
                    socket.emit('signUpResponse', { success: true });
                });
            }
        });
    });


    socket.on('disconnect', function() {
        delete SOCKET_LIST[socket.id];

    });
    socket.on("findMatch", function(data) {
        console.log('test');  // ******* Not working ********

    });

});

游戏.js

var socket = io("127.0.0.1:2000");

function findMatch(data) {
    socket.emit("findMatch", { socket: socket });
}

FindMatch()从大厅“查找匹配”按钮调用。它连接到一个onclick监听器。

谢谢你。我将不胜感激任何帮助。

编辑:连接、登录、注册和断开连接发出 DO 仅适用于我稍后添加的自定义项(例如 findMatch)不起作用

标签: javascriptnode.jssocket.iogame-development

解决方案


推荐阅读