共计 1907 个字符,预计需要花费 5 分钟才能阅读完成。
WEBSOCKET
WebSocket 插件是围绕标准化的 WebSocket 协议的简单包装器。它允许实时进行低开销的双向通信。由于 WebSocket 是基于标准的,因此它应该与任何符合标准的 WebSocket 服务器兼容。
使用 WebSocket 插件需要 WebSocket 服务器。Construct 不提供服务器,也不能使用 WebSocket 插件来创建服务器。如果你还没有设置好 WebSocket 服务器,你需要自己使用像 node.js 这样的技术支持 WebSocket 来创建一个。这可能是一个重大的任务,需要服务器端编程知识。
脚本
这个对象没有脚本接口,因为在使用 JavaScript 或 TypeScript 编码时,你可以使用浏览器内置的 WebSocket API。
安全 WebSocket 和预览模式
Construct 在安全(HTTPS)站点上运行和预览你的项目。一些浏览器会阻止从安全站点到不安全站点的连接。这意味着如果你使用不安全的 WebSocket(ws: 而不是 wss:),在 Construct 的预览模式下可能会被阻止连接。
在今天的网络上,对所有服务使用安全连接是最好的实践。你的站点也应该在 HTTPS 上托管你的项目,并且你使用的任何 WebSocket 也应该使用安全连接。实际上,HTTPS 托管是许多功能正常工作所必需的,安全的 WebSocket 更有可能成功连接,显然它也使你的内容更加安全,所以这无论如何都是一个好主意。在一些浏览器中,你可能可以通过点击浏览器中的按钮或更改设置暂时解封不安全 WebSocket 的使用,但确保所有服务都是安全的要好得多。将来,浏览器可能会完全阻止使用不安全的网站和连接。
WebSocket 和多人游戏
使用 WebSocket 设计实时多人游戏可能很诱人。尽管它们能够实时通信,但 WebSocket 并不适合对延迟敏感的实时游戏。底层传输使用可靠传输,意味着单个丢包可以阻止所有传输,直到该数据包成功重新传输。对于有严格实时要求的游戏,这可能导致无法接受的延迟水平。通常很难在不改变传输模式的情况下设计,而 WebSocket 不支持这样做。考虑改用专门为多人游戏设计的插件(仅限付费计划)。
另一方面,WebSocket 应该适合没有如此严格的实时要求的游戏,如回合制游戏。它还应该对应用程序服务有用,如聊天室。请注意,这仍然需要你自己创建 WebSocket 服务器。
WebSocket 属性
WebSocket 对象没有任何属性。
WebSocket 条件
正在连接
如果当前正在建立与服务器的连接过程中,则为 True。连接尚未成功建立;仍可能发生错误。
已打开
如果已成功建立连接并且通信通道当前处于打开状态,则为 True。
受支持
在尝试任何连接之前使用,以验证当前浏览器或平台是否支持 WebSocket。
已关闭
当连接关闭时触发,无论是故意的还是由于错误。CloseCode 和 CloseReason 表达式可以指示连接为何关闭。
发生错误
当 WebSocket 连接中发生错误时触发。使用 ErrorMsg 表达式获取错误消息文本。
已打开
当连接成功建立并且通信通道现在打开时触发。
收到二进制消息
当从服务器通过打开的连接收到二进制消息时触发。指定的 Binary Data 对象在触发器触发时写入消息内容,允许访问消息内容。
收到文本消息
当从服务器通过打开的连接收到文本消息时触发。使用 MessageText 表达式检索消息的内容。
WebSocket 操作
关闭
关闭任何活动的连接。关闭后,不能再发送或接收更多消息。
连接
连接到 WebSocket 服务器。WebSocket 服务器地址通常以 ws:// 开头表示非安全传输,以 wss:// 开头表示安全传输。注意,一些网络配置可能需要安全传输才能正确运行。
协议参数可以可选地设置为所需的子协议(在 WebSocket 握手中用 Sec-WebSocket-Protocol 头发送)。如果服务器未指示它支持所选子协议,则连接将无法建立。这可以用于防止客户端连接到不理解你的应用程序特定消息的 WebSocket 服务器。
发送二进制
将 Binary Data 对象的内容作为二进制消息发送到服务器。如果连接当前未打开,则忽略此操作。
发送文本
将文本字符串发送到服务器。如果连接当前未打开,则忽略此操作。
WebSocket 表达式
关闭代码
在 On closed 触发器中,返回关闭原因的数字代码。这可能是标准指定的返回值之一,或者是用户定义的值。
关闭原因
在 On closed 触发器中,返回描述连接关闭原因的字符串。这是可选的,可能为空。
错误消息
在 On error 中,错误消息文本。
消息文本
在 On text message 中,刚刚从服务器收到的消息的文本内容。