16.2. Créer une application WebSocket
- Un client Java ou un client WebSocket : http://caniuse.com/websockets
- Une classe de point de terminaison de serveur WebSocket.
- Un fichier
jboss-web.xmlconfiguré pour activer WebSockets. - Dépendances de projet configurées pour déclarer une dépendance sur l'API WebSocket.
- Activer le connecteur
NIO2dans le sous-systèmewebdu fichier de configuration du serveur Red Hat JBoss Enterprise Application Platform.
Note
Procédure 16.1. Créer l'application WebSocket
Créer un client HTML JavaScript.
Voici un exemple de client WebSocket. Il contient les fonctions JavaScript suivantes :lconnect(): cette fonction crée la connexion webSocket qui donne l'URI de WebSocket. L'emplacement de la ressource correspond à la ressource définie dans la classe de point de terminaison du serveur. Cette fonction intercepte et gère les WebSocketsonopen,onmessage,onerror, etonclose.sendMessage(): cette fonction a le même nom que celui qui se trouve sur le formulaire, crée un message, et l'envoie par la commande WebSocket.send().disconnect(): cette fonction génère la commande WebSocket.close().displayMessage(): cette fonction détermine le message affiché sur la page à la valeur donnée par la méthode de point de terminaison de WebSocket.displayStatus(): cette fonction affiche le statut de la connexion de WebSocket.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer le point de terminaison du serveur de WebSocket.
Vous pouvez créer un point de terminaison de serveur WebSocket par l'une des méthodes suivantes.L'exemple de code ci-dessous utilise une approche de point de terminaison annoté et gère les événements suivants.Programmatic Endpoint: le point de terminaison prolonge la classe de point de terminaison.Annotated Endpoint: la classe de point de terminaison utilise des annotations pour interagir avec les événements WebSocket. Plus facile à codifier qu'un point de terminaison programmatique.
- L'annotation
@ServerEndpointidentifie cette classe comme point de terminaison de serveur WebSocket et indique le chemin d'accès. - L'annotation
@OnOpens'active quand la connexion de WebSocket est ouverte. - L'annotation
@OnMessages'active quand un message est envoyé vers une connexion de WebSocket. - L'annotation
@OnCloses'active quand la connexion de WebSocket est fermée.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurer le fichier jboss-web.xml.
Vous devez créer l'élément<enable-websockets>dans l'applicationWEB-INF/jboss-web.xmlet la définir àtrue.<?xml version="1.0" encoding="UTF-8"?> <!--Enable WebSockets --> <jboss-web> <enable-websockets>true</enable-websockets> </jboss-web>
<?xml version="1.0" encoding="UTF-8"?> <!--Enable WebSockets --> <jboss-web> <enable-websockets>true</enable-websockets> </jboss-web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Déclarer la dépendance de l'API de Websocket dans votre fichier POM de projet.
Si vous utilisez Maven, vous devrez ajouter la dépendance suivante au fichierpom.xmldu projet.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurer le serveur JBoss EAP.
Configurer le<connector>httpdans le sous-systèmewebdu fichier de configuration du serveur pour qu'il puisse utliser le protocoleNIO2.- Démarrer le serveur JBoss EAP.
- Lancer l'interface CLI par la commande pour votre système d'exploitation.Dans Linux :Dans Windows :
EAP_HOME/bin/jboss-cli.sh --connect
EAP_HOME/bin/jboss-cli.sh --connectEAP_HOME/bin/jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow EAP_HOME\bin\jboss-cli.bat --connect
EAP_HOME\bin\jboss-cli.bat --connectEAP_HOME\bin\jboss-cli.bat --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Pour activer le protocole connecteur
NIO2Java non-bloquant dans le sous-systèmewebdu fichier de configuration du serveur JBoss EAP, saisissez la commande suivante./subsystem=web/connector=http/:write-attribute(name=protocol,value=org.apache.coyote.http11.Http11NioProtocol)
/subsystem=web/connector=http/:write-attribute(name=protocol,value=org.apache.coyote.http11.Http11NioProtocol)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Quelle que soit la commande dont il s'agit, vous devrez voir le résultat suivant apparaître :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Indiquer au serveur de charger la configuration à nouveau.
:reload
:reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vous devriez voir apparaître le résultat suivant :{ "outcome" => "success", "result" => undefined }{ "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Réviser les changements apportés au fichier de configuration du serveur JBoss EAP. Le sous-système
webdoit maintenant contenir l'XML suivant pour le<connector>http.Copy to Clipboard Copied! Toggle word wrap Toggle overflow