diff options
Diffstat (limited to 'files/zh-tw/websockets/websockets_reference')
4 files changed, 526 insertions, 0 deletions
diff --git a/files/zh-tw/websockets/websockets_reference/closeevent/index.html b/files/zh-tw/websockets/websockets_reference/closeevent/index.html new file mode 100644 index 0000000000..0a6d0977ff --- /dev/null +++ b/files/zh-tw/websockets/websockets_reference/closeevent/index.html @@ -0,0 +1,145 @@ +--- +title: CloseEvent +slug: WebSockets/WebSockets_reference/CloseEvent +tags: + - WebSockets +translation_of: Web/API/CloseEvent +--- +<p>{{ draft() }}</p> +<p>當 WebSocket 連線關閉時,客戶端會收到一個 <code>CloseEvent</code>,由 <code>WebSocket</code> 物件 <code>onclose</code> 屬性表示的監聽器接收。</p> +<h2 id="Attributes" name="Attributes">屬性</h2> +<table class="standard-table"> + <tbody> + <tr> + <td class="header">屬性</td> + <td class="header">形態</td> + <td class="header">描述</td> + </tr> + <tr> + <td><code>code</code></td> + <td><code><a href="/en/unsigned_long" title="en/unsigned long">unsigned long</a></code></td> + <td>WebSocket 伺服器給予的連線關閉代碼。「狀態代碼」列有所有可能值。</td> + </tr> + <tr> + <td><code>reason</code></td> + <td>{{ domxref("DOMString") }}</td> + <td>表示伺服器關閉連線的原因,這因不同的伺服器與子協定而定。</td> + </tr> + <tr> + <td><code>wasClean</code></td> + <td><code>boolean</code></td> + <td>表示連線關閉情況是否乾淨。</td> + </tr> + </tbody> +</table> +<h2 id="狀態代碼">狀態代碼</h2> +<p>以下列有所有合法的狀態代碼。</p> +<table class="standard-table"> + <tbody> + <tr> + <td class="header">狀態代碼</td> + <td class="header">描述</td> + </tr> + <tr> + <td>0-999</td> + <td><strong>尚未使用的保留值。</strong></td> + </tr> + <tr> + <td>1000</td> + <td>正常關閉,連線成功地達到建立時的目標。</td> + </tr> + <tr> + <td>1001</td> + <td>端點去離,伺服器故障或是瀏覽器從開啟連線的頁面離去的情形。</td> + </tr> + <tr> + <td>1002</td> + <td>因協定錯誤造成連線被端點消滅。</td> + </tr> + <tr> + <td>1003</td> + <td>因端點接收不能處理的資料形態(舉例來說,文字端點收到二進制資料)而消滅連線。</td> + </tr> + <tr> + <td>1004</td> + <td>端點收到過大的資料幀而消滅連線。</td> + </tr> + <tr> + <td>1005</td> + <td><strong>保留值。</strong>表示意外地未給予狀態代碼的情形。</td> + </tr> + <tr> + <td>1006</td> + <td><strong>保留值。</strong>用以表示在預期收到狀態代碼的情形下不正常(即未送關閉幀)的連線關閉。</td> + </tr> + <tr> + <td>1007-1999</td> + <td><strong>保留以作為未來的 WebSocket 標準之用。</strong></td> + </tr> + <tr> + <td>2000-2999</td> + <td><strong>保留以作為 WebSocket 擴展之用。</strong></td> + </tr> + <tr> + <td>3000-3999</td> + <td>程式庫與框架使用的值,應用程式<strong>可不</strong>使用。</td> + </tr> + <tr> + <td>4000-4999</td> + <td>應用程式使用的值。</td> + </tr> + </tbody> +</table> +<h2 id="參見">參見</h2> +<ul> + <li><a href="/zh_tw/WebSockets/WebSockets_reference/WebSocket" title="zh tw/WebSockets/WebSockets reference/WebSocket"><code>WebSocket</code></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>基本支援</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatUnknown() }}</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>基本支援</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatNo() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> + </table> +</div> +<h3 id="Gecko_備註">Gecko 備註</h3> +<p>此時此刻,Gecko 送至監聽器的 "close" 事件僅是簡單事件。</p> +<p>{{ languages ( {"en": "en/WebSockets/WebSockets_reference/CloseEvent"} ) }}</p> diff --git a/files/zh-tw/websockets/websockets_reference/index.html b/files/zh-tw/websockets/websockets_reference/index.html new file mode 100644 index 0000000000..19621bc3b2 --- /dev/null +++ b/files/zh-tw/websockets/websockets_reference/index.html @@ -0,0 +1,25 @@ +--- +title: WebSockets 參考 +slug: WebSockets/WebSockets_reference +tags: + - WebSockets +translation_of: Web/API/WebSockets_API +--- +<p>{{ draft() }}</p> +<p>下述文章是 WebSocket API 各介面的說明文件,本頁面為暫時的佔位文件。</p> +<dl> + <dt> + <a href="/zh_tw/WebSockets/WebSockets_reference/WebSocket" title="zh tw/WebSockets/WebSockets reference/WebSocket"><code>WebSocket</code></a></dt> + <dd> + 與 WebSocket 伺服器連接,傳送、接收資料的主介面。.</dd> + <dt> + <a href="/zh_tw/WebSockets/WebSockets_reference/CloseEvent" title="zh tw/WebSockets/WebSockets reference/CloseEvent"><code>CloseEvent</code></a></dt> + <dd> + 當連線關閉時 WebSocket 物件送出的事件。</dd> + <dt> + <a href="/zh_tw/WebSockets/WebSockets_reference/MessageEvent" title="zh tw/WebSockets/WebSockets reference/MessageEvent"><code>MessageEvent</code></a></dt> + <dd> + 當伺服器傳來資料時 WebSocket 物送送出的事件。</dd> +</dl> +<p> </p> +<p>{{ languages ( {"en": "en/WebSockets/WebSockets_reference"} ) }}</p> diff --git a/files/zh-tw/websockets/websockets_reference/messageevent/index.html b/files/zh-tw/websockets/websockets_reference/messageevent/index.html new file mode 100644 index 0000000000..f5c0212f78 --- /dev/null +++ b/files/zh-tw/websockets/websockets_reference/messageevent/index.html @@ -0,0 +1,80 @@ +--- +title: MessageEvent +slug: WebSockets/WebSockets_reference/MessageEvent +tags: + - WebSockets +translation_of: Web/API/MessageEvent +--- +<p>{{ draft() }}</p> +<p>當伺服器傳來資料時,客戶端會收到一個 <code>MessageEvent</code>,由 <code>WebSocket</code> 物件 <code>onmessage</code> 表示的監聽器接收。</p> +<h2 id="Attributes" name="Attributes">屬性</h2> +<table class="standard-table"> + <tbody> + <tr> + <td class="header">屬性</td> + <td class="header">形態</td> + <td class="header">描述</td> + </tr> + <tr> + <td><code>data</code></td> + <td>{{ domxref("DOMString") }} | {{ domxref("Blob") }} | <a href="/zh_tw/JavaScript_typed_arrays/ArrayBuffer" title="zh tw/JavaScript typed arrays/ArrayBuffer"><code>ArrayBuffer</code></a></td> + <td>伺服器傳來的資料。</td> + </tr> + </tbody> +</table> +<h2 id="參見">參見</h2> +<ul> + <li><a href="/zh_tw/WebSockets/WebSockets_reference/WebSocket" title="zh tw/WebSockets/WebSockets reference/WebSocket"><code>WebSocket</code></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>基本支援</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatGeckoDesktop("2.0") }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> + </table> +</div> +<div id="compat-mobile"> + <table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>基本支援</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + </tbody> + </table> +</div> +<h3 id="Gecko_備註">Gecko 備註</h3> +<div class="geckoVersionNote"> + <p>{{ gecko_callout_heading("6.0") }}</p> + <p>此時此刻,Gecko 不支援 <code><a href="/en/JavaScript_typed_arrays/ArrayBuffer" title="en/JavaScript typed arrays/ArrayBuffer">ArrayBuffer</a></code> 或 {{ domxref("Blob") }} 作為 <code>data</code>。</p> +</div> +<p>{{ languages ( {"en": "en/WebSockets/WebSockets_reference/MessageEvent"} ) }}</p> diff --git a/files/zh-tw/websockets/websockets_reference/websocket/index.html b/files/zh-tw/websockets/websockets_reference/websocket/index.html new file mode 100644 index 0000000000..8acd8d03d5 --- /dev/null +++ b/files/zh-tw/websockets/websockets_reference/websocket/index.html @@ -0,0 +1,276 @@ +--- +title: WebSocket +slug: WebSockets/WebSockets_reference/WebSocket +tags: + - WebSockets +translation_of: Web/API/WebSocket +--- +<p>{{ SeeCompatTable() }}</p> + +<p>{{ draft() }}</p> + +<p><code>WebSocket</code> 物件提供了建立、管理 <a href="/zh_tw/WebSockets" title="zh tw/WebSockets">WebSocket</a> 伺服器連線的 API,它也有在連線中傳送、接收資料的能力。</p> + +<h2 id="Method_overview" name="Method_overview">方法一覽</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td><code>void <a href="#close()">close</a>(in optional unsigned long code, in optional DOMString reason);</code></td> + </tr> + <tr> + <td><code>void <a href="#send()">send</a>(in DOMString data);</code></td> + </tr> + </tbody> +</table> + +<h2 id="Attributes" name="Attributes">屬性</h2> + +<table class="standard-table"> + <tbody> + <tr> + <td class="header">屬性</td> + <td class="header">形態</td> + <td class="header">描述</td> + </tr> + <tr> + <td><code>binaryType</code></td> + <td>{{ DOMXref("DOMString") }}</td> + <td>表示連線傳輸的二進制資料形態的字串,若使用 {{ domxref("Blob") }} 物件則為 "blob",使用 <a href="/zh_tw/JavaScript_typed_arrays/ArrayBuffer" title="zh tw/JavaScript typed arrays/ArrayBuffer"><code>ArrayBuffer</code></a> 物件則為 "arraybuffer"。</td> + </tr> + <tr> + <td><code>bufferedAmount</code></td> + <td><code><a href="/en/unsigned_long" title="en/unsigned long">unsigned long</a></code></td> + <td>呼叫 {{ manch("send") }} 隊列但尚未傳輸至網路上資料的位元數。連線關閉時此值不會重設為零。連續呼叫 {{ manch("send") }} 會讓此值不斷上升。<strong>唯讀</strong></td> + </tr> + <tr> + <td><code>extensions</code></td> + <td>{{ DOMXref("DOMString") }}</td> + <td>伺服器選擇的擴展。目前僅有空字串或表示資料經過壓縮的 "deflate-stream"。<strong>唯讀</strong></td> + </tr> + <tr> + <td><code>onclose</code></td> + <td>{{ domxref("EventListener") }}</td> + <td>當 WebSocket 連線的 <code>readyState</code> 切換至 <code>CLOSED</code> 時呼叫的事件監聽器。監聽器接收命名為 "close" 的 <a href="/zh_tw/WebSockets/WebSockets_reference/CloseEvent" title="zh tw/WebSockets/WebSockets reference/CloseEvent"><code>CloseEvent</code></a>。</td> + </tr> + <tr> + <td><code>onerror</code></td> + <td>{{ domxref("EventListener") }}</td> + <td>當錯誤發生時呼叫的事件監聽器。事件為命名 "error" 的簡單事件。</td> + </tr> + <tr> + <td><code>onmessage</code></td> + <td>{{ domxref("EventListener") }}</td> + <td>當瀏覽器接收伺服器的訊息時呼叫的事件監聽器。監聽器接收命名為 "message" 的 <a href="/zh_tw/WebSockets/WebSockets_reference/MessageEvent" title="zh tw/WebSockets/WebSockets reference/MessageEvent"><code>MessageEvent</code></a>。</td> + </tr> + <tr> + <td><code>onopen</code></td> + <td>{{ domxref("EventListener") }}</td> + <td>當 WebSocket 連線的 <code>readyState</code> 切換至 <code>OPEN</code> 時呼叫的事件監聽器,表示連線已準備傳送、接收資料。事件為命名 "open" 的簡單事件。</td> + </tr> + <tr> + <td><code>protocol</code></td> + <td>{{ DOMXref("DOMString") }}</td> + <td>伺服器選擇的子協定,這是建立 WebSocket 物件時 <code>protocols</code> 參數裡的其中一個字串。</td> + </tr> + <tr> + <td><code>readyState</code></td> + <td><code><a href="/en/unsigned_short" title="en/unsigned short">unsigned short</a></code></td> + <td>連線的目前狀態,是就緒狀態常數的其中一個。<strong>唯讀</strong></td> + </tr> + <tr> + <td><code>url</code></td> + <td>{{ DOMXref("DOMString") }}</td> + <td>建構方法解析出來的 URL,總是絕對 URL。<strong>唯讀</strong></td> + </tr> + </tbody> +</table> + +<h2 id="Constants" name="Constants">常數</h2> + +<h3 id="就緒狀態常數">就緒狀態常數</h3> + +<p><code>readyState</code> 屬性使用以下常數描述 WebSocket 的連線狀態。</p> + +<table class="standard-table"> + <tbody> + <tr> + <td class="header">常數</td> + <td class="header">值</td> + <td class="header">描述</td> + </tr> + <tr> + <td><code>CONNECTING</code></td> + <td><code>0</code></td> + <td>連線尚未打開。</td> + </tr> + <tr> + <td><code>OPEN</code></td> + <td><code>1</code></td> + <td>連線已打開,可以進行通訊。</td> + </tr> + <tr> + <td><code>CLOSING</code></td> + <td><code>2</code></td> + <td>連線正在進行關閉程序。</td> + </tr> + <tr> + <td><code>CLOSED</code></td> + <td><code>3</code></td> + <td>連線已關閉/連線不能打開。</td> + </tr> + </tbody> +</table> + +<h2 id="Methods" name="Methods">方法</h2> + +<h3 id="close()" name="close()">close()</h3> + +<p>關閉 WebSocket 連線/連線嘗試,若連線已為 <code>CLOSED</code>,此方法沒有作用。</p> + +<pre class="eval">void close( + in optional unsigned short code, + in optional DOMString reason +); +</pre> + +<h6 id="Parameters" name="Parameters">參數</h6> + +<dl> + <dt><code>code</code> {{ optional_inline() }}</dt> + <dd>表示狀態代碼,狀態代碼用以解釋連線關閉的原因。若未指定參數,預設值為 1000(表示正常的「事務完結(transaction complete)」關閉)。請參考 <a href="/zh_tw/WebSockets/WebSockets_reference/CloseEvent" title="zh tw/WebSockets/WebSockets reference/CloseEvent"><code>CloseEvent</code></a> 頁面的<a href="/zh_tw/WebSockets/WebSockets_reference/CloseEvent#.e7.8b.80.e6.85.8b.e4.bb.a3.e7.a2.bc" title="zh tw/WebSockets/WebSockets reference/CloseEvent#.e7.8b.80.e6.85.8b.e4.bb.a3.e7.a2.bc">狀態代碼列表</a>,有所有的合法值。</dd> + <dt><code>reason</code> {{ optional_inline() }}</dt> + <dd>解釋連線關閉原因的人類可讀字串,字串必不可大於 123 個 UTF-8 字符。</dd> +</dl> + +<h6 id="可丟例外">可丟例外</h6> + +<dl> + <dt><code>INVALID_ACCESS_ERR</code></dt> + <dd>指定不合法的 <code>code</code>。</dd> + <dt><code>SYNTAX_ERR</code></dt> + <dd><code>reason</code> 字串太長或是含有未配對的代理對。</dd> +</dl> + +<h3 id="send()" name="send()">send()</h3> + +<p>透過 WebSocket 連線傳輸資料至伺服器。</p> + +<pre class="eval">void send( + in DOMString data +); + +void send( + in ArrayBuffer data +); + +void send( + in Blob data +); +</pre> + +<h6 id="Parameters" name="Parameters">參數</h6> + +<dl> + <dt><code>data</code></dt> + <dd>要傳送至伺服器的字串。</dd> +</dl> + +<h6 id="可丟例外_2">可丟例外</h6> + +<dl> + <dt><code>INVALID_STATE_ERR</code></dt> + <dd>目前連線不為 <code>OPEN</code>。</dd> + <dt><code>SYNTAX_ERR</code></dt> + <dd>資料為帶有未配對代理對的字串。</dd> +</dl> + +<h6 id="註釋">註釋</h6> + +<div class="geckoVersionNote"> +<p>{{ gecko_callout_heading("6.0") }}</p> + +<p>Gecko <code>send()</code> 方法的實作與 Gecko 6.0 的規範有差別。Gecko 回傳一個 <code>boolean</code> 以表示連線是否仍處於開啟狀態(且資料成功隊列/傳輸)。另外,此時此刻,Gecko 不支援 <code><a href="/zh_tw/JavaScript_typed_arrays/ArrayBuffer" title="zh tw/JavaScript typed arrays/ArrayBuffer">ArrayBuffer</a></code> 或 {{ domxref("Blob") }} 作為資料形態。</p> +</div> + +<h2 id="See_also" name="See_also">參見</h2> + +<ul> + <li><a href="/zh_tw/WebSockets/Writing_WebSocket_client_applications" title="zh_tw/WebSockets/Writing WebSocket client applications">製作 WebSocket 客戶端應用程式</a></li> + <li><a class="external" href="http://dev.w3.org/html5/websockets/" title="http://dev.w3.org/html5/websockets/">HTML5: WebSockets</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>基本支援</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatGeckoDesktop("2.0") }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td>子協定支援</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatGeckoDesktop("6.0") }}</td> + <td>{{ CompatUnknown() }}</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>基本支援</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatGeckoMobile("7.0") }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + <td>{{ CompatUnknown() }}</td> + </tr> + <tr> + <td>子協定支援</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>自從 Gecko 6.0,建構方法有前輟,須使用 <code>MozWebSocket()</code>:</p> + +<pre>var mySocket = new MozWebSocket("<span class="plain">http://www.example.com/socketserver</span>"); +</pre> + +<p>{{ languages ( {"en": "en/WebSockets/WebSockets_reference/WebSocket"} ) }}</p> |