Open RPG - Portail de jeux php

Samedi, Mai 19, 2012
Blog

Le blog

Tweet me!

Comme toujours, lorsque je n'arrive pas à faire un truc, je cherche et je trouve du moins j’essaie de trouver. Actuellement, j'ai un soucis avec les websockets et Firefox car Firefox a une latence lors de la déconnexion d'un utilisateur (de 20 secondes). Je me permet donc de contacter Paul Rouget via Twitter car d'après ce que j'ai pu comprendre c'est le pionner dans le monde fabuleux de Firefox donc j'en déduit qu'il pourra m'aider ou me mettre sur le chemin d'une solution contraite ou du moins chercher le comment du pourquoi. Voilà les réponses que j'ai eu :

@wubart Assure toi que ce ne soit pas un bug coté server (impl. version 0.76)

@wubart J'ai toujours pas compris ton bug en fait. Fais moi un reduced test case, et je pourrais t'aider.

@wubart Je ne vais pas débugger ton PHP. Ce que je peux te dire, c'est que la déconnexion fonctionne très bien ici avec mon server node.

En gros c'est de mon cote que vient le problème et qui produit le non fonctionnement de mon programme mais que tout va bien du coté de Firefox. OK je veux bien l'admettre, donc je suis son conseil et j'installe et configure un serveur Node (qui est très bien d'ailleurs). Bien entendu pour faire la par des choses, je n'utilise pas mon code mais une simple potion de code qui ne fait qu'une connexion et envois une petite phrase.

<script type="text/javascript">
    var connect = function() {
        if (window["WebSocket"]) {
            conn = new WebSocket("ws://localhost:8000/test");
           
            conn.onmessage = function(evt) {
                log(evt.data);
            };
           
            conn.onerror = function() {
                log("error");
            };
           
            conn.onclose = function() {
                log("onclose");
            };
   
            conn.onopen = function() {
                log("opened");
            };
        }
    };
   
    function test()
    {
        conn.send("test message");
    }
   
    window.onload = connect;
    window.onunload = function() { conn.close(); };
</script>
<input type="button" value="test" onClick="test()"/>

Et on peut pas dire que les résultats soient concluant voir identique d'avec mon ancien serveur PHP. Mais pour mieux comprendre, j'ai encore fait une petite vidéo :

Voir la vidéo en HD

Donc pour résumer, mon jeu proposera le système de websocket pour voir les autres joueurs se balader sur les cartes mais uniquement sur Chrome, Safari et Opéra (mais pour opéra je dois trouver une solution car il est réactif cela étant il déconnecte correctement mais si on refresh la page il connecte correctement et ensuite il déconnecte l'ancienne session va savoir pourquoi)

PS : je tiens à remercier @paraboul qui bosse sur le projet APE

@wubart Simplement parce que je pense que ton server WS envois le close au niveau TCP et non une WS close frame.

Tweet me!

Bon voilà j'ai avancé sur ma partie websocket mais toujours autant de soucis avec ce fameux Firefox.
Je met à disposition mon code en espérant qu'on m'aide pour trouver cette solution sur le kill de session quand la fenêtre est fermé ou que la page est réactualisé :

var MySocket = false;
try {
MySocket = new WebSocket('ws://'+url_websocket+'/socket/server.php');
MySocket.onopen = function(){
send_info_socket( 'add');
};
MySocket.onmessage = function(msg){
//alert(msg);
};
}
catch(ex){
alert('Votre navigateur n\'est pas prit en compte pour le HTML5.');
}
$(window).unload(function() {
if(MySocket != false)
MySocket.close();
});
function send_info_socket( type)
{
MySocket.send(type+'-'+id_user+'-'+id_region+'-'+userX+'-'+userY);
}

Et voilà la partie PHP serveur :

FICHIER : server.php

#!/php -q
error_reporting( E_ALL );
set_time_limit( 0 );
ob_implicit_flush();
define( 'SYSPATH', TRUE );
$dir = dirname( __FILE__ );
require_once $dir .'/../modules/global/config/url.php';
require_once $dir .'/socket.class.php';
WebSocketServer::instance( $config['websocket_user'], $config['websocket_port'] )->run();
?>
Tweet me!

Aujourd'hui, j'ai voulu me remettre aux websockets pour mon projet www.creermonjeu.com (qui est un éditeur de jeu en PHP - javascript) pour la partie multi-joueurs.
Mais après quelques tests, je me rends compte que cela va être dure, car Firefox a de grosses latences sur la suppression de session lors d'une déconnexion brutale comparé à Chrome qui lui n'en a pas (va savoir pourquoi).

Comment dois-je m'y prendre pour combler ce problème?
Et bien, je n'ai actuellement aucune solution. J'ai donc fait une vidéo démontrant le problème en espérant avoir des réponses via l'équipe qui gère Firefox. Cela étant, Chrome gère très bien ce problème (c'est de même pour Safari par contre IE9 c'est simple il ne le support pas les websockets). Je sais que les websockets ont été désactivé pour une raison de sécurité suite à la découverte d'une faille voir l'article suivant. Mais bon, dans un futur proche cela va être résolu (je le souhaite de tout cœur) donc je veux prendre les devants.

Je commence à m’orienté sur Chrome à contre coeur car j'adore Firefox mais depuis la version 4, je rencontre divers soucis. Par exemple avant la beta 11, je devait déplacer ma fenêtre pour avoir le contenu de ma page, au bout d'un moment c'est un peu ennuyeux. Je veux bien croire que firebug est le mieux optimisé sur Firefox mais au bout d'un moment, faut faire un choix sur ce qu'on souhaite d'un navigateur. Donc en espérant que Firefox s'améliore et arrête de prévoir des version X ou Y au lieu de se concentrer sur l'essentiel (le bon fonctionnement d'une page) ou de critiquer les autres navigateurs genre IE (moi qui est totalement anti IE, je trouve ça tout de même dur) je dois faire comme s'il n'existait pas ou alors arrêter mon développement en croissant les doigts pour que cette latence soit corrigé dans le futur ce qui ne me convient actuellement pas car j'aime pas attendre après les autres pour bosser.

Maintenant, la question qui pourrait être posé, c'est s'il y a d'autres solutions que les websockets ?
Je vais vous répondre que oui. Par exemple APE Ajax push engine mais je rappel que mon projet sera téléchargé pas divers personnez pro ou amateur qui ne savent pas forcément utiliser ce genre de technologie d’où mon choix sur les websockets qui demande juste le démarrage d'un serveur (dans mon cas PHP) en ligne de commande, ce qui n'est pas sorcier je pense car sur la doc j'expliquerai comment faire (php -f).

Voilà mon petit coup de gueule ou du moins mon soucis sur le comment du pourquoi de mon projet qui est un peu en attente de solution.

Je reste à la disposition de toute personne qui pourra m'aider à trouver une solution pour combler ce manque.

JavaScript est désactivé!
Pour afficher ce contenu, vous devez utiliser un navigateur compatible avec JavaScript.

Voir la vidéo en meilleur qualité

Tweet me!

Bonjour à tous,

Et voilà j'y suis arrivé!! j'ai réussi à mettre en place une nouvelle version du site (portail), j'ai aussi remis certaine démo qui ne fonctionnaient plus et je leur ai mis un nom de domaine pour chacun sauf Open RPG qui se trouve être un sous domaine du portail.

Si on regarde de plus près on verra qu'une nouvelle rubrique a fait son apparition, LA DOC et oui désormais toutes les infos techniques se trouveront ici.

Pour ceux qui ne le savent pas même si c'est écris en gros sur la homepage, Wargang (mafiajob V7) est enfin disponible au téléchargement car on me le réclamait souvent mais par manque de temps je ne l'avais pas encore fait. Et bien c'est chose faite!! Faut savoir aussi que comme on change pas les bonnes vieilles habitude, l'ancienne version est passé dans le monde du gratuit. J'en connais qui vont se jeter dessus depuis le temps qu'ils souhaitent l'avoir mais ne voulaient pas mettre la main à la poche ;)

Pour en revenir à Wargang, c'est la première fois qu'il tournera sur une autre machine que la mienne, ce qui veut dire que je ne suis pas à l'abri de bug mais pour ça, encore une nouveauté, le tracker qui permet de relever tous les bugs de chaque script et ce qui m'aidera à mieux les réparer.

Concernant Créer mon jeu, je pense le mettre à disposition d'ici un mois d'ou la date du 1 avril, et non zombre, ce n'est pas une poisson d'avril loll

Allez moi je vais aller me coucher car il se fait tard et que j'ai une vie à coté (perso et pro)

En espérant que cela vous rende content, bonne nuit !!!

Cordialement Alban

PS : pour la doc technique, il y a des traductions a faire pour ceux qui le souhaitent. et je tient à remercier tous ceux qui ont mise du temps pour m'aider et je ne les oublirai pas le 1 avril si on se comprend ;)

Plus d'articles...

Page 1 sur 13

<< Début < Précédent 1 2 3 4 5 6 7 8 9 10 Suivant > Fin >>

Mes derniers tweets

wubart: @lilicastille Alors c'est pour quand le prochain marathon ? hi hi hi
wubart: “@NARDEAU: @dzeis @wubart @lilicastille des hauts talons, une jupe et pas de dessous” #reve
wubart: @lilicastille PS : ce matin grave a la bourre j'suis arrivé a 13h pu..in de réveil !!!!
wubart: @lilicastille @dzeis @nardeau c'est a cause du #petitjournal hi hi hi cela étant t'as pas retenu le compliment des chaussures :(
wubart: RT @DespoRutti93: J'connais des femmes mariées si chaude qu'elles choperaient un rhume en enfer

Espace publicité

Connexion à votre compte