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.)