Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

TCPSocket API

此處將以 JavaScript 格式存取原始的 TCP socket API。此 API 目前僅可用於 FirefoxOS 許可/認證的 App。

進入點 (Entry point)

var TCPSocket = navigator.mozTCPSocket;
if(TCPSocket){
  // ...
}

API

interface TCPSocket{
  readonly attribute DOMString host;
  readonly attribute unsigned short port;
  readonly attribute boolean ssl;
  readonly attribute unsigned long bufferedAmount;
  readonly attribute DOMString binaryType;

  readonly attribute DOMString readyState;
  readonly attribute DOMString CONNECTING;
  readonly attribute DOMString OPEN;
  readonly attribute DOMString CLOSING;
  readonly attribute DOMString CLOSED;

  TCPSocket open(DOMString host, unsigned short port, [object options]);
  void suspend();
  void resume();
  void close();
  boolean send(in jsval data);

  attribute onopen;
  attribute ondrain;
  attribute ondata;
  attribute onerror;
  attribute onclose;
};

屬性 (Attributes)

host
Socket 所要連接的 Host。
port
Socket 所要連接的 Port。
ssl
Socket 是否經過 SSL 加密。
bufferedAmount
位於 Socket 緩衝區內,尚未傳送資料的位元數。
readyState
Socket 狀態。可能為 {CONNECTING, OPEN, CLOSING, CLOSED}。

常數 (Constants)

CONNECTING
該數值表示 Socket 的連結狀態。尚未無法傳送資料。
OPEN
該數值表示 Socket 的開啟狀態。已可傳送資料。
CLOSING
該數值表示 Socket 的關閉中狀態。
CLOSED
該數值表示 Socket 的已關閉狀態。

函式 (Method)

open(host, port [, options])
所回傳的新 TCP Socket,均已於指定的 port 連上指定的 hostOptions 將作為正規物件。以下為可用選項:
  • useSSL (此為 Boolean 值;預設為 false):將不論 TCP 連結是否使用 SSL。
  • binaryType (此為字串;預設為「string」):將以資料事件的格式接收 TCP 資料型態,再以 send 的方式傳送資料。可為「string」或「arraybuffer」(UInt8Array)
send(data)
將緩衝所要傳送至網路的資料。若可安全緩衝更多資料,則將回傳 true。若是回傳 false,即代表將緩衝更多資料。但若要達到較佳效能 (保持較小緩衝),則應等待下個 drain 事件以緩衝更多資料。
suspend()
暫停 data 事件。
resume()
繼續 data 事件。若於 Socket 並未暫停的情況下而呼叫此方式,隨即將丟出錯誤。
close()
關閉 TCP Socket。

事件 (Events)

透過 on* 屬性,可將 Event Listener 附加至 Socket。

open
在此事件之後,Socket 即準備好傳送/接收資料。
drain
Socket 中可緩衝更多資料。
error
發生錯誤。在 open 事件之前,將拒絕連結作業 (不會發生 close 事件)。在 open 事件之後,就會遺失連結作業 (事件之後隨即觸發 close 事件)
data
已接受到某些資料。事件的物件將包含 data 屬性,以利檢索資料。在建立 Socket 時,即已設定資料型態。
close
已關閉 Socket。

敘述 (Description)

此 API 僅可用於 FirefoxOS 許可/認證過的 App。而其指涉的 Host 與 Port 均必須由 app manifest 所提及。

僅限認證過的 App 可用 1024 以下的 Port。

另請參閱

文件標籤與貢獻者

 此頁面的貢獻者: MashKao
 最近更新: MashKao,