Chat con WebSocket
1- Creamos un Web Socket EndPoint y lo llamamos Proceso y
escribimos el siguiente cdigo:
package ws;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
*
* @author usuario
*/
@ServerEndpoint("/proceso")
public class Proceso {
private static Set<Session> sessiones =
[Link](new HashSet<Session>());
@OnOpen
public void onOpen(Session session) {
[Link]([Link]() + "Ha abierto una conexion");
try {
[Link](session);
[Link]().sendText("Conexion establecida");
} catch (IOException ex) {
}
}
@OnMessage
public void onMessage(String mensaje, Session session) {
[Link]("Mensaje" + [Link]() + mensaje);
try {
for (Session s : sessiones) {
[Link]().sendText( mensaje);
}
} catch (IOException ex) {
}
}
@OnClose
public void onClose(Session session) {
[Link](session);
[Link]("Session " + [Link]() + " ha terminado");
}
}
2- Modificamos el archivo [Link]
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project
Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>Chat on Line</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
</head>
<body>
<h4>Usuario:</h4>
<input type="text" id="usuarioinput">
<h4>Mensaje:</h4>
<input type="text" id="messageinput">
<div>
<p></p>
<p></p>
<button type="button" onclick="openSocket();">Open</button>
<button type="button" onclick="send();">Send</button>
<button type="button"
onclick="closeSocket();">Close</button>
</div>
<div id="messages"></div>
<script type="text/javascript">
var webSocket;
var messages = [Link]("messages");
function openSocket() {
if (webSocket !== undefined && [Link]
!== [Link])
{
writeResponse("WebSocket ya esta abierto");
return;
}
webSocket = new WebSocket("[Link]
[Link]+ [Link]+"proceso");
[Link] = function (event)
{
if ([Link] === undefined)
return;
writeResponse([Link]);
};
[Link] = function (event)
{
writeResponse([Link]);
};
[Link] = function (event)
{
writeResponse("Conexion cerrada");
};
}
function send()
{
try {
var usuario =
[Link]("usuarioinput").value;
var text =
[Link]("messageinput").value;
[Link](usuario + " dice: " + text);
[Link]("messageinput").value = "";
}
catch (err) {
}
}
function closeSocket()
{
try {
[Link]();
}
catch (err) {
}
}
function writeResponse(text)
{
[Link] += "<br/>" + text;
}
</script>
</body>
</html>