WebSocket etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
WebSocket etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

9 Nisan 2018 Pazartesi

WebSocket @ServerEndpoint Anotasyonu

Giriş
Şu satırı dahil ederiz.
import javax.websocket.server.ServerEndPoint;
Açıklaması şöyle.
A class annotated by @ServerEndpoint is registered to a server-side WebSocket endpoint
and every time the corresponding endpoint's WebSocket is connected to the server, its
instance is created and managed by Java WebSocket implementation.
Bu anotasyon ile @OnOpen,@OnMessage,@OnClose,@OnError anotasyonları kullanılır.

value Alanı
Örnek
Şöyle yaparız. onMessage ile gelen WebSocket Session nesnesi.
@ServerEndpoint("/singleplayer")
public class SingleplayerSocket {

  private Session session;
   

  @OnOpen
  public void onOpen(Session session) {
    this.session = session;
    ...
  }

  @OnMessage
  public void onMessage(String message) {
    if (session != null && session.isOpen()) {
      ...
     }
  }

  @OnClose
  public void onClose(Session session) {
    this.session = null;
  }
}
Örnek
Şöyle yaparız.
@ServerEndpoint("/websocketendpoint")
public class WsServer {
  private Session session;

  @OnClose
  public void onClose() {
    ...
  }

  @OnOpen
  public void onOpen(Session session) {
   ...
  }

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

  @OnError
  public void onError(Throwable e) {
    ...
  }
}

WebSocket @OnMessage Anotasyonu

Giriş
Şu satırı dahil ederiz.
import javax.websocket.server.OnMessage;
Parametre olarak WebSocket Session nesnesi alır

Örnek
Şöyle yaparız.
@OnMessage
public void onMessage(String message, Session session) {
  System.out.println("Message from the client: " + message);
  this.session.getBasicRemote().sendText(...);
}

WebSocket Session Arayüzü

Giriş
Şu satırı dahil ederiz.
import javax.websocket.server.Session;
getBasicRemote metodu
Şöyle yaparız.
Session session = ...;
session.getBasicRemote().sendText(...);

12 Haziran 2017 Pazartesi

WebSocket Endpoint Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.websocket.CloseReason;
import javax.websocket.Endpoint;
import javax.websocket.EndpointConfig;
import javax.websocket.OnMessage;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
JSR 356 yani Java API for WebSocket ile tanımlı.

Tanımlama
JSR 356 anotasyon veya arayüz kalıtımı yaklaşımlarından birisinin tercih edilmesini istiyor.
Örnek
@ServerEndpoint anotasyonu ile şöyle yaparız.
@ServerEndpoint(value = "/ws/log")
public class LogEndPoint{
...
}
Örnek
Kalıtım ile şöyle yaparız.
public class LogEndPoint extends Endpoint {
...
}
doOnMessage metodu
İmzası şöyle
@OnMessage
public void doOnMessage(String message, Session session);
onClose metodu
İmzası şöyle
@Override
public void onClose(Session session, CloseReason closeReason);
onError metodu
İmzası şöyle
@Override
public void onError(Session session, Throwable throwable);
onOpen metodu
İmzası şöyle
@Override
public void onOpen(Session session, EndpointConfig config);