Merhabalar değerli Java dostları, bugünkü yazımda java ile nasıl websocket server yazılacağını göstermek istiyorum. Aslında oldukça kolay ve basit. Eminim siz de finalde bu kadar mı diye soracaksınız. Öncelikle gerekli maven ayarlarımızı yapalım.

 

 <dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.tyrus.bundles</groupId>
<artifactId>tyrus-standalone-client</artifactId>
<version>1.9</version>
</dependency>

 

İlk maven ayarımız kendini çok net belli ediyor. GlassFish Tyrus kısmı ise aslında bizim için bir websocket implementation. javax direkt olarak kendi içerisinde bir implementation barındırmıyor. Şimdi de örnek sınıfımıza gelelim.

 

import java.io.Serializable;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;

 

@ServerEndpoint(“/WebSocketServer”)
public abstract class WebSocketServer implements Serializable {
private static final long serialVersionUID = 1L;

@OnOpen
public void onOpen(Session session) {
}

@OnClose
public void onClose(Session session) {
}

@OnMessage
public void onMessage(String message, Session session) {
}

@OnError
public void onError(Throwable error) {
}

}

 

İşte bu kadar 😀 . @ServerEndpoint ile bu sınıfın yayın yapan bir websocket server olduğunu belirtiyoruz. Parametre olarak verdiğimiz WebSocketServer ise bize ulaşmak için bir path değeri veriyor. Yani URI’ mizin sonuna bunu eklememiz gerekiyor. @OnOpen metodu bir client bağlandığında otomatik çağrılan metottur.

@OnClose ise tam tersine bağlantı kapandığında çağrılır. Bu iki metot ile client yönetimi yapabiliriz. @OnMessage, server bir mesaj aldığında çağrılır. Son olarak @OnError ise bir hata oluşması durumunda çağrılır.

İşte olayımız bu kadar basit, bir sonraki yazımda client tarafına değinmek istiyorum.

Bol Java’ lı günler dileğiyle… 😀

Categories:

One response

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir