Я сейчас создаю игру, используя Socket.IO и Javascript.Изначально я хотел сделать многопользовательскую игру в реальном времени, однако столкнулся с проблемой очень быстро.В конце концов я сдался и перешел к пошаговой игре, но проблема все равно не исчезла.
Проблема в том, что сервер (app.js) не получает излучение от клиента (game.js).Я пытался воссоздать проект, console.log и поиск Google безрезультатно.
App.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 ********
});
});
Game.js
var socket = io("127.0.0.1:2000");
function findMatch(data) {
socket.emit("findMatch", { socket: socket });
}
FindMatch()
вызывается из лобби кнопки «Найти соответствие».Он подключен к слушателю onclick
.
Спасибо.Я был бы признателен за любую помощь.
Редактировать: Излучение подключения, входа, регистрации и отключения ДЕЙСТВИТЕЛЬНО работают только пользовательские, которые я добавляю позже (например, findMatch), не работают