blob: 49adb03bd0afc93beee7f42f784575689dea023f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
---
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_callout_heading("6.0") }}</p>
<p>Gecko 6.0 {{ geckoRelease("6.0") }} 之前,不該存在的 <code>WebSocket</code> 物件使得某些開發者認為 <code>WebSocket</code> 服務沒有前輟,此物件已被更名為 <code>MozWebSocket</code>。</p>
</div>
<div class="geckoVersionNote">
<p>{{ gecko_callout_heading("7.0") }}</p>
<p>自從 Gecko 7.0 {{ geckoRelease("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>
<p>{{ HTML5ArticleTOC() }}</p>
<p>{{ languages ( {"en": "en/WebSockets", "es": "es/WebSockets"} ) }}</p>
|