このページでは、各SailsSocket インスタンスで使用できるプロパティについて説明します。これらのプロパティは、SailsSocket を作成する io.sails.connect
の最初の呼び出しで設定され、ソケットが接続されている間は変更できません(headers
は例外です)。
ソケットが切断された場合(意図的または.disconnect
の呼び出しの結果)、ソケットが再度接続されるまでプロパティを変更できます。つまり、あるサーバーから切断されたインスタンスを、イベントバインディングやキューに入れられたリクエストを失うことなく、別のサーバーに再接続できます。
プロパティ | 型 | デフォルト | 詳細 |
---|---|---|---|
url |
io.sails.url の値 |
ソケットが接続されている、または接続を試みる URL。 | |
transports |
io.sails.transports の値 |
ソケットが接続を試みるトランスポート。トランスポートは、アップグレードが許可された状態で順番に試行されます。つまり、「polling」と「websocket」の両方をリストした場合、ロングポーリング接続を確立した後、サーバーはそれを WebSocket 接続にアップグレードしようとします。この設定は、Sails アプリの sails.config.sockets.transports の値と一致する必要があります。 |
|
headers |
io.sails.headers の値 |
このソケットが接続後に送信するすべてのリクエストにデフォルトで付与されるヘッダーの辞書。.request() の headers オプションでオーバーライドできます。最初のソケットハンドシェイクリクエストのヘッダーを設定する方法については、下記の initialConnectionHeaders を参照してください。 |
プロパティ | 型 | デフォルト | 詳細 |
---|---|---|---|
query |
io.sails.query の値 |
サーバーへの最初の接続で使用するクエリ文字列。サーバーコードでは、コントローラーアクションで req.socket.handshake.query を使用するか、ソケットライフサイクルコールバックで handshake._query を使用してアクセスできます。指定したクエリ文字列には、sails.io.js SDK のバージョンに関する情報が付加されることに注意してください。query の一般的な使い方は、Sails アプリが接続ソケットをブラウザセッションに関連付けないことを示す nosession=true を設定することです。 |
|
initialConnectionHeaders |
io.sails.initialConnectionHeaders の値 |
Node.js のみで使用可能で、ブラウザでは使用できません。 サーバーへの最初の接続で送信されるヘッダーの辞書(上記 headers プロパティとは異なり、これは最初の接続後に実行されるすべてのソケットリクエストで送信されるヘッダーです)。サーバーコードでは、最初の接続ヘッダーは、コントローラーアクションでは req.socket.handshake.headers でアクセスできるか、ソケットライフサイクルコールバックでは socket.handshake.headers でアクセスできます。これは、(たとえば)最初のハンドシェイクで cookie ヘッダーを送信し、ソケットが以前に確立された Sails セッションに接続できるようにする場合に便利です。 |
|
useCORSRouteToGetCookie |
io.sails.useCORSRouteToGetCookie の値 |
ブラウザ環境でのみ関連し、認証にデフォルトの Sails セッション + セッションクッキーを使用している場合にのみ関連します。クロスオリジンソケット接続の場合、このプロパティを使用して、適切なセッションを確立するために、クッキーを取得するために最初の JSONP リクエストを送信するルートを選択します。ルートは文字列 '_sailsIoJSConnect();' を返信する必要があります。これにより接続が続行されます。useCORSRouteToGetCookie が true の場合、Sails サーバーのデフォルトの /__getcookie ルートが使用されます。false の場合、ソケットを接続する前にリモートサーバーに接続する試行は行われません。注:この方法は、デフォルトでサードパーティクッキーをブロックする特定のブラウザ(特定のバージョンの Safari を含む)では失敗する可能性があります。 |
io.sails.*
のデフォルトio.sails
オブジェクトを使用して、新しいクライアントソケットのデフォルト値を提供できます。たとえば、io.sails.url = "http://myapp.com:1234"
を設定すると、io.sails.connect()
の呼び出しで url
値が提供されない限り、すべての新しいクライアントソケットが http://myapp.com:1234
に接続するようになります。
以下は、io.sails
のプロパティのデフォルト値です。
プロパティ | デフォルト |
---|---|
url |
ブラウザでは、sails.io.js スクリプトをロードしたページの URL。Node.js では、デフォルト値はありません。 |
transports |
['websocket'] |
headers |
{} |
query |
'' |
initialConnectionHeaders |
{} |
useCORSRouteToGetCookie |
true |