Örnek

Java ile Basit Bir Web Socket Örneği

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.
zafer.teker , 07.03.2020

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir