Bir web projesinde sunucuda Java kullanarak kolay bir şekilde websocket desteği eklenebilir. Bunun için java web socket api'si kullanılabilir. Projeye aşağıdaki gibi eklenebilir:
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
Öncelikle içerik üreten bir endpoint eklenmelidir:
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/ws")
public class WebSocketServer {
private Session session;
@OnMessage
public void message(String message) {
session.getAsyncRemote().sendText(message + " alindi");
}
@OnOpen
public void open(Session session) {
this.session = session;
}
@OnClose
public void close() {
this.session = null;
}
}
/ws path'i ile kullanılabilen bir endpoint yaratılmıştır. Bir mesaj oluşturma isteği geldiğinde onu uzaktaki tüm istemcilere (web socket'i açmış) iletecektir.
Aşağıdaki gibi bir sayfa yapalım. Bu sayfa hem içerik üretsin hem de içerik değiştiği zaman ekranda alert ile göstersin.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var wsUrl = "ws://localhost:8080/javaws/ws";
var webSocket;
function init() {
webSocket = new WebSocket(wsUrl);
webSocket.onmessage = function(evt) {
onMessage(event)
};
}
function sendMessage() {
webSocket.send(textInput.value);
}
function onMessage(event) {
alert(event.data);
}
window.addEventListener("load", init, false);
</script>
</head>
<body>
<input type="text" id="textInput"/>
<button onclick="sendMessage();">Mesaji Gönder</button>
</body>
</body>
</html>
Düğmeye basıldığında sendMessage() yöneti çağrılır. Oda socket'e içeriği yazar. ws://localhost:8080/javaws/ws da javasw wep projesinin path'i, ws ise endpoint'î yaratırken verilen path'dir. webSocket.onmessage ile mesaj geldiğinde bir javascript olayı fırlamaktadır.

Görüldüğü gibi Mesaj gönder düğmesine basıldığında alınan veri alert ile kullanıcıya gösterilmektedir. Farklı bir web sayfası yapıp, o sayfadan da socket açabilirsiniz. Aynı veri o sayfada da gösterilecektir.