本節描述了每個 SailsSocket 實例上可用的方法。這些方法大多數甚至在 socket 連接到伺服器之前就可以調用。對於像 .get()
和 .request()
這樣的請求方法,調用將會被排隊,直到 socket 連接上伺服器,屆時它們將按順序執行。
您將在 SailsSocket 實例中使用最常見的方法,已記錄在主要的 Socket Client 參考章節中。這些包括 .get()
、.put()
、.post()
、.delete()
、.request()
、.on()
和 .off()
。
除了基本通訊和事件監聽方法之外,每個 SailsSocket 實例(包括 io.socket
)還公開了幾個用於處理伺服器連線的方法。
.isConnected()
判斷 SailsSocket 實例目前是否已連線到伺服器;如果已建立連線,則返回 true
。
io.socket.isConnected();
.isConnecting()
判斷 SailsSocket 實例目前是否正在連線到伺服器的過程中;如果正在嘗試連線,則返回 true
。
io.socket.isConnecting();
.mightBeAboutToAutoConnect()
偵測 SailsSocket 實例何時已載入但尚未完全配置或尚未嘗試自動連線。
sails.io.js
函式庫會等待事件循環的一個 tick,然後檢查是否啟用 autoConnect
,如果啟用了,則嘗試連線。這讓您可以在嘗試建立連線之前配置 SailsSocket
實例(例如,透過設定 io.sails.url
)。在 sails.io.js
已載入,但事件循環的必要 tick 尚未經過的情況下,mightBeAboutToAutoConnect()
方法會返回 true
。
io.socket.mightBeAboutToAutoConnect();
.disconnect()
斷開 SailsSocket 實例與伺服器的連線;如果 socket 已斷開連線,則拋出錯誤。
io.socket.disconnect();
.reconnect()
在 SailsSocket 實例斷線後(無論是意外斷線還是透過調用 .disconnect()
斷線),將其重新連線到伺服器。該實例使用其目前配置的屬性進行連線。如果 socket 已連線到伺服器,.reconnect()
會拋出錯誤。
io.socket.reconnect();
當實例處於斷線狀態時,可以更改其屬性。這表示已從一個伺服器斷線的實例可以重新連線到另一個伺服器,而不會遺失其事件綁定或排隊的請求。
.removeAllListeners()
停止監聽 SailsSocket 實例上的任何伺服器相關事件,包括 connect
和 disconnect
。
io.socket.removeAllListeners();