---
title: WebSockets
slug: Web/API/WebSockets_API
tags:
  - WebSockets
translation_of: Web/API/WebSockets_API
original_slug: WebSockets
---
<p>{{ SeeCompatTable() }}</p>
<p>WebSocket 是一種讓瀏覽器與伺服器進行一段互動通訊的技術。這個 API 在不必輪詢(poll)伺服器下,讓使用者傳送訊息至伺服器並接受事件驅動回應。</p>
<table class="topicpage-table">
 <tbody>
  <tr>
   <td>
    <h4 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=WebSockets&amp;language=zh-tw" title="Special:Tags?tag=WebSockets&amp;language=zh-tw">文件</a></h4>
    <dl>
     <dt>
      <a href="/zh_tw/WebSockets/Writing_WebSocket_client_applications" title="zh tw/WebSockets/Writing WebSocket client applications">製作 WebSocket 客戶端應用程式</a></dt>
     <dd>
      指導如何製作在瀏覽器上跑 WebSocket 客戶端的教程。</dd>
     <dt>
      <a href="/zh_tw/WebSockets/WebSockets_reference" title="zh tw/WebSockets/WebSockets reference">WebSockets 參考手冊</a></dt>
     <dd>
      客戶端的 WebSocket API 參考手冊。</dd>
     <dt>
      <a href="/en/WebSockets/The_WebSocket_protocol" title="en/WebSockets/The WebSocket protocol">The WebSocket protocol</a></dt>
     <dd>
      WebSocket 協定參考。</dd>
     <dt>
      <a href="/en/WebSockets/Writing_WebSocket_servers" title="en/WebSockets/Writing WebSocket servers">Writing WebSocket servers</a></dt>
     <dd>
      處理 WebSocket 協定的伺服器端代碼書寫指引。</dd>
    </dl>
   </td>
   <td>
    <h4 id="Tools" name="Tools">工具</h4>
    <ul>
     <li><a class="external" href="http://socket.io" title="http://socket.io/">Socket.IO</a>:一個強大的跨平台 WebSocket API,建構在 <a class="external" href="http://cnodejs.org/" title="http://cnodejs.org/">Node.js</a> 之上。</li>
     <li><a class="link-https" href="https://github.com/Worlize/WebSocket-Node" title="https://github.com/Worlize/WebSocket-Node">WebSocket-Node</a>:一個 WebSocket 伺服器 API 的實作,建構在 <a class="external" href="http://cnodejs.org/" title="http://cnodejs.org/">Node.js</a> 之上。</li>
    </ul>
    <p> </p>
    <h4 id="Related_Topics" name="Related_Topics">相關主題</h4>
    <dl>
     <dd>
      <a href="/zh_tw/AJAX" title="zh_tw/AJAX">AJAX</a>、<a href="/zh_tw/JavaScript" title="zh_tw/JavaScript">JavaScript</a></dd>
    </dl>
   </td>
  </tr>
 </tbody>
</table>
<h2 id="參見">參見</h2>
<ul>
 <li><a class="external" href="http://dev.w3.org/html5/websockets/" title="http://dev.w3.org/html5/websockets/">WebSocket API Specification</a></li>
 <li><a href="/en/Server-sent_events" title="en/Server-sent events">Server-Sent Events</a></li>
</ul>
<h2 id="瀏覽器兼容">瀏覽器兼容</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>功能</th>
    <th>Chrome</th>
    <th>Firefox (Gecko)</th>
    <th>Internet Explorer</th>
    <th>Opera</th>
    <th>Safari</th>
   </tr>
   <tr>
    <td>版本 -76 {{ obsolete_inline() }}</td>
    <td>6</td>
    <td>{{ CompatGeckoDesktop("2.0") }}</td>
    <td>{{ CompatNo() }}</td>
    <td>11.00 (禁用)</td>
    <td>5.0.1</td>
   </tr>
   <tr>
    <td>協定版本 7</td>
    <td>{{ CompatNo() }}</td>
    <td>
     <p>{{ CompatGeckoDesktop("6.0") }}</p>
     <div class="note">
      請用 <code>MozWebSocket</code>。</div>
    </td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}</td>
   </tr>
   <tr>
    <td>協定版本 10</td>
    <td>14</td>
    <td>
     <p>{{ CompatGeckoDesktop("7.0") }}</p>
     <div class="note">
      請用 <code>MozWebSocket</code>。</div>
    </td>
    <td>HTML5 Labs</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
   </tr>
  </tbody>
 </table>
</div>
<div id="compat-mobile">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>功能</th>
    <th>Android</th>
    <th>Firefox Mobile (Gecko)</th>
    <th>IE Mobile</th>
    <th>Opera Mobile</th>
    <th>Safari Mobile</th>
   </tr>
   <tr>
    <td>版本 -76 {{ obsolete_inline() }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
   </tr>
   <tr>
    <td>協定版本 7</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
   </tr>
   <tr>
    <td>協定版本 8 (IETF 草案 10)</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatGeckoMobile("7.0") }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
    <td>{{ CompatUnknown() }}</td>
   </tr>
  </tbody>
 </table>
</div>
<h3 id="Gecko_附註">Gecko 附註</h3>
<p>Firefox 的 WebSockets 支援正在持續追蹤發展中的 WebSocket 規範。Firefox 6 實作底層協定版號 7,Firefox 7 實作協定版號 8(IETF 草案 10 的內容)。Firefox mobile 在 7.0 版支援 WebSocket。</p>
<div class="geckoVersionNote">
 <p>Gecko 6.0 之前,不該存在的 <code>WebSocket</code> 物件使得某些開發者認為 <code>WebSocket</code> 服務沒有前輟,此物件已被更名為 <code>MozWebSocket</code>。</p>
</div>
<div class="geckoVersionNote">
 <p>自從 Gecko 7.0,偏好設定 <code>network.websocket.max-connections</code> 可以用來設定 WebSocket 連線同時開啟的最大個數。預設值為 200。</p>
</div>
<div class="warning">
 <strong>警告:</strong>雖然不是唯一的理由,但是目前 WebSockets 被 Firefox 4 與 5 禁用的關鍵原因是一個<a class="external" href="http://www.ietf.org/mail-archive/web/hybi/current/msg04744.html" title="http://www.ietf.org/mail-archive/web/hybi/current/msg04744.html">協定設計上的安全問題</a>,因此不建議在生產環境下使用這些 Firefox 版本的 WebSockets。若仍想測試 WebSockets,你可以開啟 <code>about:config</code> 並設定 <code>network.websocket.enabled</code> 的取值至 <code>true</code>,並需要同時設定 <code>network.websocket.override-security-block</code> 的取值至 <code>true</code> 才能允許 WebSocket 連線的初始化。</div>