此页面描述了每个 SailsSocket 实例 上可用的属性。这些属性在初始调用 io.sails.connect
时设置,该调用创建 SailsSocket,并且在套接字连接期间无法更改(headers
除外)。
如果套接字断开连接(无论是无意断开连接还是由于调用 .disconnect
导致的),则可以在套接字重新连接之前更改其属性。这意味着已从一台服务器断开连接的实例可以重新连接到另一台服务器,而不会丢失其事件绑定或排队的请求。
属性 | 类型 | 默认值 | 详细信息 |
---|---|---|---|
url |
值 io.sails.url |
套接字连接或将尝试连接到的 URL。 | |
transports |
值 io.sails.transports |
套接字将尝试连接到的传输方式。传输方式将按顺序尝试,并允许升级;也就是说,如果您同时列出 "polling" 和 "websocket",那么在建立长轮询连接后,服务器将尝试将其升级到 WebSockets 连接。此设置应与您 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 的常见用法是设置 nosession=true ,表示 Sails 应用程序不应将连接的套接字与浏览器会话关联起来。 |
|
initialConnectionHeaders |
值 io.sails.initialConnectionHeaders |
仅限 Node.js - 在浏览器中不可用。 发送到服务器的初始连接的标头字典(与上面的 headers 属性相反,该属性包含发送到初始连接后进行的每个套接字请求的标头)。在服务器代码中,可以通过控制器操作中的 req.socket.handshake.headers 或 套接字生命周期回调 中的 socket.handshake.headers 来访问初始连接标头。这对于(例如)在初始握手时发送 cookie 标头很有用,允许套接字连接到先前建立的 Sails 会话。 |
|
useCORSRouteToGetCookie |
值 io.sails.useCORSRouteToGetCookie |
仅在浏览器环境中以及您依赖默认 Sails 会话 + 会话 cookie 进行身份验证时才相关。对于跨源套接字连接,使用此属性选择一个路由以发送初始 JSONP 请求以检索 cookie,以便可以建立正确的会话。该路由应以字符串 '_sailsIoJSConnect();' 响应,这将允许连接继续。如果 useCORSRouteToGetCookie 为 true ,则将使用 Sails 服务器上的默认 /__getcookie 路由。如果它为 false ,则在连接套接字之前不会尝试联系远程服务器。注意:此策略可能会在某些浏览器(包括某些版本的 Safari)上失败,这些浏览器默认情况下会阻止第三方 cookie。 |
io.sails.*
默认值io.sails
对象可用于为新的客户端套接字提供默认值。例如,设置 io.sails.url = "http://myapp.com:1234"
将导致每个新的客户端套接字连接到 http://myapp.com:1234
,除非在调用 io.sails.connect()
时提供了 url
值。
以下是 io.sails
中属性的默认值
属性 | 默认值 |
---|---|
url |
在浏览器中,加载 sails.io.js 脚本的页面的 URL。在 Node.js 中,没有默认值。 |
transports |
['websocket'] |
headers |
{} |
query |
'' |
initialConnectionHeaders |
{} |
useCORSRouteToGetCookie |
true |