Passer au contenu principal
Toutes les collectionsQuestions générales
Comment exécuter des serveurs de salle depuis brainCloud
Comment exécuter des serveurs de salle depuis brainCloud

Dockerfile, serveur de salle personnalisé, hall d'entrée

Jason Liang avatar
Écrit par Jason Liang
Mis à jour il y a plus de 2 semaines

Cet article vous guidera à travers plusieurs étapes essentielles pour lancer des serveurs de salle pour votre jeu via brainCloud. Par souci de simplicité et d'accessibilité, nous déploierons un site web sur un serveur de salle, au lieu de la logique de jeu avec le système brainCloud S2S.

Étape 1: créez votre image Docker

Pour que brainCloud déploie votre jeu personnalisé ou votre logique métier sur les serveurs de la salle, il suffit de charger votre image Docker et d'exécuter ce conteneur d'images sur le serveur. Créons-en un.

Nous utiliserons le framework Vue pour le site de démonstration. (vous devez déjà avoir Docker et Vue installés sur votre machine).

  • Exécutez ceci dans votre bash:

vue create docker-vue
  • construire le package

yarn build
  • créer un Dockfile

cd docker-vue && touch Dockerfile
  • créer un fichier de configuration Nginx

touch default.conf
  • écrivez la ligne suivante dans le fichier default.conf

server { 
listen 80;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/host.access.log main;
error_log /var/log/nginx/error.log error;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
  • ouvrez Dockfile et écrivez-y le contenu suivant:

FROM nginx 
COPY dist/ /usr/share/nginx/html/
COPY default.conf /etc/nginx/conf.d/default.conf

FROM nginx -- définissez l'image qui sera construite en fonction de nginx:latest image.

COPY dist/ /usr/share/nginx/html/ -- copie tout le contenu du dossier racine dist vers le dossier image /usr/share/nginx/html/

COPY default.conf /etc/nginx/conf.d/default.conf -- remplacez le fichier de configuration de l'image Nginx par celui que nous avons créé.

  • exécutez la commande docker build pour créer une image via le Dockfile actuel.

docker build -t yourdockeraccount/docker-vue .

-t -- donne un nom à l'image.

. -- utiliser le dossier actuel dans lequel Dockfile a été localisé.

  • une fois que Docker a construit l'image avec succès, nous pouvons la vérifier en exécutant:

docker image ls
  • maintenant, nous pouvons exécuter l'image

docker run -d -p 3500:80 --name docker-vue yourdockeraccount/docker-vue

-d -- définit le conteneur en mode détaché (arrière-plan).

-p -- mapper le port interne au port hôte Docker qui exécuterait le conteneur.

--name -- donne un nom au conteneur (ici: docker-vue)

  • vérifiez tous les conteneurs en cours d'exécution en exécutant:

docker ps -a
  • ouvrez votre navigateur avec localhost:3500 pour vérifier le Web en cours d'exécution

  • ouvrez le tableau de bord du bureau Docker, vous y trouverez le conteneur en cours d'exécution.

  • maintenant, il est temps d'expédier votre image vers votre hub Docker.

docker push yourdockeraccount/docker-vue
  • vous devriez le trouver dans vos référentiels Docker Hub après l'expédition.

Étape 2: Configurer le serveur de salle et le lobby sur brainCloud

Afin de permettre à brainCloud de lancer votre image comme vous l'exécutez sur votre machine locale à partir de l'étape ci-dessus, vous devez indiquer à brainCloud où trouver votre image et configurer certains paramètres pour votre serveur et le déclencheur du serveur -- lobby.

  • Accédez à la page "Conception | Mes serveurs | Code Cloud - Paramètres de mes serveurs", créez un nouveau serveur et remplissez les champs comme suit. (N'oubliez pas d'ajouter une région pour votre serveur dans la section "Régions")

  • Navigateur vers la page Conception | Multijoueur | Configurer les lobbies, créez un nouveau lobby et définissez-le comme lien vers le serveur de salle que vous venez de créer.

Étape 3: écrire le code de test

Choisissez le langage compatible avec brainCloud que vous préférez pour écrire le code qui lance le serveur de salle. En résumé, votre code doit inclure les clés API suivantes:

  • RTTService.enableRTT

  • RTTService.registerRTTLobbyCallback

  • LobbyService.createLobby

...
_bc.RTTService.enableRTT(BrainCloud.RTTConnectionType.WEBSOCKET, rttConnectSuccess, rttConnectFailure);
public void rttConnectSuccess(response)
{
_bc.RTTService.registerRTTLobbyCallback(rttCallback);
String lobbyType = "wart";
int rating = 76;
String[] otherUserCxIds = response.data.cxId;
String settings = "{}";
boolean isReady = false;
String extraJson = "{}";
String teamCode = "all";
_bc.getLobbyService().createLobby(lobbyType, rating, otherUserCxIds, settings, isReady, extraJson, teamCode, this);
}
public void rttConnectFailure(String errorMessage)
{
System.out.print(String.format("Failed | %s", errorMessage));
}
...

Étape 4: tester et déboguer

Afin de mieux déboguer votre serveur de salle de test, l'intégration de l'alerte Slack est une bonne option. Consultez cet article pour plus de détails sur la mise en œuvre. Exécutez votre code de test: votre Slack recevra de nombreux messages d'état changeants de la part du serveur d'hébergement brainCloud.

À partir de ces messages de retour, vous pouvez obtenir toutes les informations sur votre serveur de salle en cours d'exécution, telles que l'IP et le port d'exécution de l'instance.

(pour notre exemple, il s'exécute à 35.183.69.27:9000, vous pouvez donc visiter l'adresse depuis votre navigateur pour le tester.)

Avez-vous trouvé la réponse à votre question ?