--- 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&language=zh-tw" title="Special:Tags?tag=WebSockets&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>