Java

Java – WebSocket Nedir, Nasıl Kullanılır ?

Java – WebSocket Nedir, Nasıl Kullanılır ?

Websocket teknolojisi RFC 6455 ve Websocket Javascript API’dan oluşur.Web client üzerinden websocket JavaScript API ile websocket serverlara bağlantı kurulabilir. Websocket server, client’tan connection’ı bekler.Client ve server arasında kurulan kalıcı bağlantı sayesinde her iki taraf birbirine data gönderebilir hale gelir.Hem server hem de istemci tarafında callback listenerlar mevcuttur. Bunlar :

  • onOpen -> Connection ilk kurulduğunda çağrılır.
  • onMessage -> Yeni bir mesaj geldiğinde çağrılır.
  • onError -> onOpen, onClose ,onMessage ‘dan birinde hata olduğunda çağrılır.
  • onClose -> Connection kapatıldığında çağrılır.

WebSocket Kullanımının daha anlaşılır olması için aşağıda basit bir örnek üzerinden açıklama yapılmıştır. Örneğin çalışması için :

kurulu olması gerekmektedir. Kurulumlar tamamlandıktan sonra tomcati başlatıyoruz.

 

 

Tomcat ve Jdk kurulumları yapıldıktan sonra  sıra geldi server ve client kodlamasını yazmaya :

 

 

 

 

 

 

 

Java Server Side

package com.ws;

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;

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

  @OnClose
  public void close() {
    this.session = null;
  }
  
  @OnMessage
  public void message(String message) {
    System.out.println(" Mesaj : "+message);
    this.session.getAsyncRemote().sendText("Alınan Mesaj :" + message);
  }
}

 

Javascript Client

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Web Socket Test Page</title>
</head>
<body>
  <script type="text/javascript">
    
    var wsUrl = "ws://localhost:8080/Websocket/ws";
    var webSocket;

    function init() {
      webSocket = new WebSocket(wsUrl);
      webSocket.onopen = function(evt) {
        onOpen(event)
      };
      webSocket.onclose = function(evt) {
        onClose(event)
      };
      webSocket.onmessage = function(evt) {
        onMessage(event)
      };
      webSocket.onerror = function(evt) {
        onError(event)
      };
    }
    
    function onOpen(event){
      Console.log("OnOpen Event");
    }

    function onClose(event) {
      Console.log("OnClose Event");
    }

    function onError(event) {
      Console.log("OnError Event");
    }

    function sendMessage() {
      webSocket.send(textBox.value);
    }

    function onMessage(event) {
      alert(event.data);
    }

    window.addEventListener("load", init, false);
  </script>
  <textarea id="textBox" rows="5" cols="20"></textarea>
  <button >

 

Neden WebSocket ?

HTML5 ile gelen en güzel özelliklerden, AJAX kullanmadan sunucu ile iletişime geçmemizi sağlayan WebSocket teknolojisi ile açılan tek bir bağlantı üzerinden istemcinin yeni bir istek yapmadan sunucunun istemci/istemcilere veri göndermesini sağlar.

  • Gereksiz veri trafiğinden korur
  • Anlık değişimler takip edilebilir
  • Anlık veri akışları sağlar
  • Hız ve performans yüksektir
  • Çoklu platform desteği vardır

 

belenyasin

Share
Published by
belenyasin

Recent Posts

Netbeans Türkçe Dil Ayarı

Netbeans kullanım sırasında search ederken karşılaşılan dil bazlı eşleşme sorununu gidermek , setter getter sırasında…

12 ay ago

VsCode Eklenti Ayarları Export/İmport

Mevcutta kullandığımız vscode eklentileri bir başka cihaza taşımak ve kullanmak için kaynak bilgisayardan extension listesi…

1 sene ago

Çalışan Port Bulma ve Sonlandırma

Port bulmak için : netstat -npano TCP | find "80"Gelen listeden PID değeri öğrenilir.taskkill /PID…

1 sene ago

Ambilight Yapımı-DIY

Ambilight Yapımı-DIY Herkese merhabalar. Philips'in hayranlık uyandıran Ambilight teknolojisi film izlerken ya da müzik dinlerken…

3 sene ago

Git Kurulumu

Git , yazdığımız projeleri ve uygulamaları, bilgisayarımızda ya da harici disklerde değilde internet üzerinde tutmamızı…

4 sene ago

Pardus Açılış Ekran Hatası

Merhabalar Pardus kullanmaya başlayan biri olarak, kurulum sırasında ve sonrasında Pardus başlarken karşılaştığım bir açılış…

4 sene ago