尝试通过端口远程连接到socket.io服务器

时间:2020-07-14 12:21:16

标签: javascript node.js server socket.io

我正在尝试制作多人浏览器游戏,以便与一些朋友远程玩游戏。我正在尝试设置服务器(使用socket.io和node.js),以便它们可以加入。我一直在研究各种教程,并且设置了端口转发(尽我所能。)它在本地网络中有效,但不能远程运行,根据https://www.yougetsignal.com/tools/open-ports/,端口5000未打开,这是我托管游戏的端口。

这是我的服务器的代码:

// Dependencies
var express = require('express');
var http = require('http');
var path = require('path');
var socketIO = require('socket.io');
var app = express();
var server = http.Server(app);
var io = socketIO(server);
app.set('port', 5000);
app.use('/static', express.static(__dirname + '/static'));
// Routing
app.get('/', function(request, response) {
  response.sendFile(path.join(__dirname, 'index.html'));
});
// Starts the server.
server.listen(5000,'0.0.0.0', function() {
  console.log('Starting server on port 5000');
});


// Add the WebSocket handlers
io.on('connection', function(socket) {
});


var players = {};
io.on('connection', function(socket) {
  socket.on('new player', function() {
    players[socket.id] = {
      x: 300,
      y: 300
    };
  });
  socket.on('movement', function(data) {
    var player = players[socket.id] || {};
    if (data.left) {
      player.x -= 5;
    }
    if (data.up) {
      player.y -= 5;
    }
    if (data.right) {
      player.x += 5;
    }
    if (data.down) {
      player.y += 5;
    }
  });
});
setInterval(function() {
  io.sockets.emit('state', players);
}, 1000 / 60);

我只希望他们能够加入! 我是与网络相关的事物的新手,但在此先感谢您的帮助:)

0 个答案:

没有答案