Les serveurs Onset disposent d'un protocol pour communiquer par programmation, permettant de récupérer en temps réel les informations des parties en cours. Dans ce tutoriel, nous allons voir comment interroger un serveur Onset avec PHP grâce au query port. Une des utilisations possibles est l'intégration d'un serveur viewer sur votre site internet pour afficher les infos du serveur à vos visiteurs.

Pour les plus techniques d'entre vous, sachez que la communication se déroule en UDP et le protocole utilisé est Open Game Protocol (OGP), un protocole libre bien qu'un peu ancien.

PHP - Client OGP Onset

Pour pouvoir récupérer les informations de Onset en PHP, nous allons avoir besoin d'une librairie PHP (client OGP).

Le client OGP officiel pour PHP est obsolète (écrit pour PHP4), pour ce tutoriel nous allons utiliser notre version modifiée, compatible avec les dernières versions de PHP.

Vous pouvez récupérer le code du client ici: https://github.com/mTxServ/php-open-game-protocol-client/blob/master/OGP.php.

Récupérez la classe OGP et ajoutez dans votre projet.

Nous allons maintenant l'utiliser, voici un exemple :

<?php

require_once 'ogp.php';

$ogp = new \OGP\OGP('127.0.0.1', 27015);
if(!$ogp->getStatus()) {
    die("Error: ".$ogp->error);
}

var_dump(
  $ogp->serverInfo,
  $ogp->players,
  $ogp->rules,
  $ogp->teams,
  $ogp->addons,
  $ogp->limits,
  $ogp->ping
);

N'oubliez pas de remplacer :

  • 127.0.0.1
    Adresse IP de votre serveur Onset.
  • 27015
    Le Query Port de votre serveur (par défaut: port du serveur - 1).

Pour l'instant le jeu ne gère pas les sections addons, teams, limits et rules, ne vous étonnez pas si vos packages n'y apparaissent pas.

Le nom du serveur peut contenir des balises bbcode pour le formatage de texte (+ couleurs). Pour avoir un rendu, vous pouvez utiliser cette librairie (en javascript).