2017-05-09 2 views
2

Commencé suite à un tutoriel pour la mise en réseau pour mon jeu d'unité (pas fait cela avant).Connectez le jeu Unity à Digital Ocean Node.js Server

Il est si loin créé un script vraiment simple qui peut être connecté. Voici ce que j'ai:

var io = require("socket.io")(process.env.port || 3000); 

console.log("Server Started"); 

io.on("connection", function (socket) { 
    console.log("Client Connected"); 
}); 

Dans l'unité, j'ai un gameobject avec un composant Socket IO (d'un actif sur le magasin) sur elle. À partir de CMD, j'exécute la version locale de server.js (code ci-dessus), et voir "Server Started" apparaît. Dans Unity, l'URL de l'objet GameObject est: ws: //127.0.0.1: 3000/socket.io /? EIO = 4 & transport = websocket, et quand je joue à l'unité, il se connecte. Ceci est montré avec "Client Connecté" apparaissant dans la fenêtre cmd.

Le tutoriel ne va pas dans la façon dont vous pourriez déployer quelque chose comme ça, alors je faisais juste en sorte que ça allait fonctionner définitivement avant de continuer. J'ai créé une droplet d'océan numérique, avec Node.js sur. J'ai navigué vers srv/www, et installé express ainsi que socket.io, comme je l'ai fait localement. J'ai téléchargé (via ftp) server.js à l'emplacement, et l'ai couru. J'ai vu le "Server Started" apparaître. Quand je change l'adresse IP dans l'URL dans l'unité, la maintenance du port et tout ce qui suit, etc, et appuyez sur play, il ne semble pas se connecter. Je ne vois jamais de message "Client connecté". C'est comme le dernier obstacle, mais je ne peux pas contourner ce problème.

Est-ce que j'ai mis les choses dans le mauvais répertoire? Qu'est-ce que je fais de mal, pourquoi ne se connecte-t-il pas?

Répondre

0

Compris. Je n'avais pas ouvert le port, donc la connexion ne passait pas à cause de ça. "sudo ufw allow 3000" était ce dont j'avais besoin. :)