2010-11-09 3 views
8

WebSockets? Je viens juste de parcourir des websockets et j'en ai entendu de bonnes choses mais j'ai trouvé que html5 n'est pas vraiment disponible en ce moment, ça vaut la peine de passer à l'écriture d'un MMO basé sur un navigateur websockets et de mettre les joueurs à jour. télécharger ce dont ils ont besoin ou utiliser la comète et si le navigateur de quelqu'un supporte les websockets; courez comme ça? Des pensées?WebSockets? Est-il à nouveau de commencer à utiliser pour le navigateur MMO basé sur Javascript

Répondre

9

Réponse: Ce n'est pas trop nouveau et vous pouvez l'utiliser maintenant sur presque tous les navigateurs.

WebKit a bénéficié du soutien de WebSockets pendant un certain temps (en gros tout le monde en utilisant Safari ou Chrome l'a). À partir de iOS 4.2 Les WebSockets ont été activés (Apple l'avait laissé désactivé dans les versions précédentes). Opera 11.0 l'aura (10,7 est maintenant 11,0). Firefox 4.0 l'a inclus mais désactivé par défaut (activé dans about: config). Firefox 5.0 ou 6.0 sera probablement activé par défaut.

Pour les autres navigateurs, vous pouvez utiliser web-socket-js, qui est une solution de remplacement basée sur Flash. Cela fonctionne bien et il est facile de faire un retour automatique. Il est plus lent que les WebSockets natives mais a une latence beaucoup plus faible que AJAX/COMET.

Si Javascript est une option valide pour le backend, vous pouvez envisager d'utiliser Node et la bibliothèque Socket.IO pour le nœud. Socket.IO est principalement une bibliothèque côté serveur qui supporte WebSockets (il intègre le web-socket-js falback) et diverses méthodes AJAX/COMET/long-poll. Le côté client de Socket.IO vous permet d'utiliser la même API que sur le serveur (c'est très similaire à l'API WebSockets normale) et il effectue la détection et sélectionne le transport optimal. Les transports AJAX/COMET/à interrogation longue ne sont utilisés que si le navigateur n'a pas de WebSockets natives et que vous choisissez de ne pas utiliser la solution de repli.

Inclus avec noVNC (client VNC HTML5) est websockify qui est un proxy socket WebSockets à TCP. Il existe trois implémentations: C, python et Node. Ce pourrait être une référence utile pour vous. noVNC transfère de grandes quantités de données sur WebSockets et il est très sensible à la latence. Le repli Flash est nettement moins efficace, mais il a quand même des performances très utilisables.(Avertissement: J'ai fait noVNC)

En résumé: le seul endroit WebSockets ne sont pas pris en charge est en ce moment les navigateurs sans WebSockets natifs et sans Flash (à savoir iOS actuels et anciens téléphones Android).

Quelques notes misc:

  • Je trouve http://caniuse.com être meilleure pour HTML5 (et connexes) des informations de support du navigateur.

  • HTML5 Cross-browser Polyfills est une liste très utile (et longue) de shims, fallbacks et polyfills qui ajoutent des fonctionnalités HTML5 aux navigateurs qui ne les prennent pas en charge.

0

Selon WebSockets:

Pour le côté client, WebSocket est implémenté dans Firefox 4, Google Chrome 4, Opera 10.70 et Safari 5.

Ainsi, vos utilisateurs auront des problèmes si elles essayez d'utiliser un navigateur qui n'est pas répertorié ci-dessus ...

+1

Si l'utilisateur veut jouer à un MMO dans les cotes du navigateur, il n'utilise pas IE – jcolebrand

0

Vous pouvez utiliser Flash Sockets pour émuler des WebSockets natives sur divers navigateurs, à condition que Flash soit activé.

1

Jetez un oeil à Socket.IO. Il vous permet de programmer avec une API semblable à WebSockets qui fonctionne nativement dans les quelques navigateurs qui supportent actuellement WebSockets, mais qui revient à Flash ou qui interroge depuis longtemps les anciens navigateurs. En utilisant un polyfill comme Socket.IO, il est certainement possible de commencer à utiliser WebSockets immédiatement.

Questions connexes