وب‌سوکت

وب سوکت (web socket) یک نوع پروتکل ارتباطی در کامپیوتر است.

برنامه نویسی با معماری وب سوکت (web socket programming) با زبان جاوااسکریپت موضوعی است که کمتر از موضوعات دیگر به آن پرداخته می‌شود.
در ابتدا کمی به موضوعات سرویس گیرنده و سرویس دهنده می‌پردازیم. سرویس گیرنده یا همان کلاینت که تقاضای برخی از فعالیتها را می‌کند و سرویس دهنده هم آن عمل درخواستی را انجام داده و به سرویس گیرنده پاسخ می‌دهد. مشخصات پروتکل WebSocket ws (WebSocket) و wss (WebSocket Secure) را به عنوان دو طرح جدید شناسایی منبع یکنواخت (URI) تعریف می کند.   

حال به برنامه نویسی با وب سوکت می‌پردازیم. وب سوکت به برنامه نویسان امکان کار با شبکه را همانند رفتار ورودی و خروجی در فایل را می‌دهد.
این بدین معنی می‌باشد که برنامه می‌تواند از یک سوکت به آسانی خواندن و نوشتن در یک فایل، بخواند یا در آن بنویسد. 

انواع سوکت:
 سوکت استریم
 سوکت دیتاگرام
مثالی از کد سوکت استریم:
<!DOCTYPE html>

<meta charset="utf-8"/>

<title>WebSocket Test</title>

<script language="javascript" type="text/javascript">

  var wsUri = "ws://echo.websocket.org/";
  var output;

  function init()
  {
    output = document.getElementById("output");
    testWebSocket();
  }

  function testWebSocket()
  {
    websocket = new WebSocket(wsUri);
    websocket.onopen = function(evt) { onOpen(evt) };
    websocket.onclose = function(evt) { onClose(evt) };
    websocket.onmessage = function(evt) { onMessage(evt) };
    websocket.onerror = function(evt) { onError(evt) };
  }

  function onOpen(evt)
  {
    writeToScreen("CONNECTED");
    doSend("WebSocket rocks");
  }

  function onClose(evt)
  {
    writeToScreen("DISCONNECTED");
  }

  function onMessage(evt)
  {
    writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
    websocket.close();
  }

  function onError(evt)
  {
    writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
  }

  function doSend(message)
  {
    writeToScreen("SENT: " + message);
    websocket.send(message);
  }

  function writeToScreen(message)
  {
    var pre = document.createElement("p");
    pre.style.wordWrap = "break-word";
    pre.innerHTML = message;
    output.appendChild(pre);
  }

  window.addEventListener("load", init, false);

</script>

منابع

پیوند به بیرون 
 IETF Hypertext-Bidirectional (HyBi) working group
  The WebSocket protocol - Proposed Standard published by the IETF HyBi Working Group
 The WebSocket protocol - Internet-Draft published by the IETF HyBi Working Group
 The WebSocket protocol - Original protocol proposal by Ian Hickson
 The WebSocket API  - W3C Working Draft specification of the API
 The WebSocket API - W3C Candidate Recommendation specification of the API
 WebSocket.org  WebSocket demos, loopback tests, general information and community

پروتکل‌های لایه کاربرد
توسعه وب
سوکت شبکه
واژگان اینترنت
ویکی‌سازی رباتیک
علوم رایانه در ۲۰۱۱ (میلادی)
اچ‌تی‌ام‌ال۵