HTML5 - WebSockets
WebSockets, tek bir soket üzerinden çalışan ve HTML 5 uyumlu tarayıcılarda bir JavaScript arayüzü aracılığıyla sunulan web uygulamaları için yeni nesil çift yönlü bir iletişim teknolojisidir.
Web sunucusuyla bir Web Soketi bağlantısı kurduğunuzda, tarayıcıdan sunucuya bir arama yaparak veri gönderebilirsiniz. send() yöntemi ve sunucudan tarayıcıya veri alma onmessage olay işleyicisi.
Aşağıda, yeni bir WebSocket nesnesi oluşturan API yer almaktadır.
var Socket = new WebSocket(url, [protocal] );
Burada ilk bağımsız değişken olan url, bağlanılacak URL'yi belirtir. İkinci öznitelik olan protokol isteğe bağlıdır ve varsa, bağlantının başarılı olması için sunucunun desteklemesi gereken bir alt protokolü belirtir.
WebSocket Nitelikleri
Aşağıda WebSocket nesnesinin özniteliği verilmiştir. Yukarıda belirtildiği gibi Socket nesnesini oluşturduğumuzu varsayarsak -
Sr.No. | Öznitelik ve Açıklama |
---|---|
1 | Socket.readyState Salt okunur özelliği readyState, bağlantının durumunu temsil eder. Aşağıdaki değerlere sahip olabilir -
|
2 | Socket.bufferedAmount Salt okunur özelliği bufferedAmount, send () yöntemi kullanılarak sıraya alınan UTF-8 metninin bayt sayısını temsil eder. |
WebSocket Olayları
Aşağıda WebSocket nesnesiyle ilişkili olaylar yer almaktadır. Yukarıda belirtildiği gibi Socket nesnesini oluşturduğumuzu varsayarsak -
Etkinlik | Olay işleyicisi | Açıklama |
---|---|---|
açık | Socket.onopen | Bu olay, soket bağlantısı kurulduğunda meydana gelir. |
İleti | Socket.onmessage | Bu olay, istemci sunucudan veri aldığında gerçekleşir. |
hata | Socket.onerror | Bu olay, iletişimde herhangi bir hata olduğunda meydana gelir. |
kapat | Socket.onclose | Bu olay, bağlantı kapatıldığında meydana gelir. |
WebSocket Yöntemleri
Aşağıda WebSocket nesnesiyle ilişkili yöntemler verilmiştir. Yukarıda belirtildiği gibi Socket nesnesini oluşturduğumuzu varsayarsak -
Sr.No. | Yöntem ve Açıklama |
---|---|
1 | Socket.send() Send (veri) yöntemi, bağlantıyı kullanarak verileri iletir. |
2 | Socket.close() Close () yöntemi mevcut herhangi bir bağlantıyı sonlandırmak için kullanılacaktır. |
WebSocket Örneği
WebSocket, istemci ile sunucu arasında standart bir çift yönlü TCP soketidir. Soket bir HTTP bağlantısı olarak başlar ve ardından bir HTTP el sıkışmasından sonra bir TCP soketine "Yükseltilir". El sıkışmadan sonra her iki taraf da veri gönderebilir.
İstemci Tarafı HTML ve JavaScript Kodu
Bu öğreticiyi yazarken, WebSocket () arayüzünü destekleyen yalnızca birkaç web tarayıcısı vardır. Aşağıdaki örneği Chrome, Mozilla, Opera ve Safari'nin en son sürümüyle deneyebilirsiniz.
<!DOCTYPE HTML>
<html>
<head>
<script type = "text/javascript">
function WebSocketTest() {
if ("WebSocket" in window) {
alert("WebSocket is supported by your Browser!");
// Let us open a web socket
var ws = new WebSocket("ws://localhost:9998/echo");
ws.onopen = function() {
// Web Socket is connected, send data using send()
ws.send("Message to send");
alert("Message is sent...");
};
ws.onmessage = function (evt) {
var received_msg = evt.data;
alert("Message is received...");
};
ws.onclose = function() {
// websocket is closed.
alert("Connection is closed...");
};
} else {
// The browser doesn't support WebSocket
alert("WebSocket NOT supported by your Browser!");
}
}
</script>
</head>
<body>
<div id = "sse">
<a href = "javascript:WebSocketTest()">Run WebSocket</a>
</div>
</body>
</html>
Pywebsocket yükleyin
Yukarıdaki istemci programını test etmeden önce, WebSocket'i destekleyen bir sunucuya ihtiyacınız var. İndirin mod_pywebsocket-xxxtar.gz pywebsocket Apache HTTP Sunucusu için bir Web Soket uzantısı sağlamak ve aşağıdaki adımları izleyerek yüklemek hedefliyor.
İndirilen dosyanın sıkıştırmasını açın ve açın.
İçeri gir pywebsocket-x.x.x/src/ dizin.
$ python setup.py build
$ sudo python setup.py install
Ardından belgeyi şu şekilde okuyun -
- $ pydoc mod_pywebsocket
Bu, onu python ortamınıza kuracaktır.
Sunucuyu başlatın
Şuraya git pywebsocket-x.x.x/src/mod_pywebsocket klasör ve aşağıdaki komutu çalıştırın -
$sudo python standalone.py -p 9998 -w ../example/
Bu, sunucuyu 9998 numaralı bağlantı noktasında dinlemeye başlayacak ve handlers echo_wsh.py dosyamızın bulunduğu -w seçeneği ile belirtilen dizin.
Şimdi Chrome tarayıcısını kullanarak, başlangıçta oluşturduğunuz html dosyasını açın. Tarayıcınız WebSocket () 'i destekliyorsa, tarayıcınızın WebSocket'i desteklediğini belirten bir uyarı alırsınız ve son olarak "WebSocket'i Çalıştır" seçeneğini tıkladığınızda sunucu betiği tarafından gönderilen Hoşçakal mesajını alırsınız.