Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
WebSocketPeer¶
Inherits: PacketPeer < RefCounted < Object
WebSocket 连接。
Description¶
这个类代表 WebSocket 连接,可以用作 WebSocket 客户端(兼容 RFC 6455),也可以用作 WebSocket 服务器的远程对等体。
发送 WebSocket 二进制帧请使用 PacketPeer.put_packet,发送 WebSocket 文本帧请使用 send(与基于文本的 API 交互时请优先选择文本帧)。可以通过 was_string_packet 检查最近一个数据包的帧类型。
开启 WebSocket 客户端的方法是:首先调用 connect_to_url,然后定期调用 poll(例如在 Node 的处理过程中)。查询套接字的状态请使用 get_ready_state,获取挂起的数据包数量请使用 PacketPeer.get_available_packet_count,获取挂起的数据包请使用 PacketPeer.get_packet。
extends Node
var socket = WebSocketPeer.new()
func _ready():
socket.connect_to_url("wss://example.com")
func _process(delta):
socket.poll()
var state = socket.get_ready_state()
if state == WebSocketPeer.STATE_OPEN:
while socket.get_available_packet_count():
print("数据包:", socket.get_packet())
elif state == WebSocketPeer.STATE_CLOSING:
# 继续轮询才能正确关闭。
pass
elif state == WebSocketPeer.STATE_CLOSED:
var code = socket.get_close_code()
var reason = socket.get_close_reason()
print("WebSocket 已关闭,代码:%d,原因 %s。干净得体:%s" % [code, reason, code != -1])
set_process(false) # 停止处理。
如果要作为 WebSocket 服务器的对等体使用,请参考 accept_stream 及在线教程。
Properties¶
|
||
|
||
|
||
|
||
|
Methods¶
accept_stream ( StreamPeer stream ) |
|
void |
|
connect_to_url ( String url, TLSOptions tls_client_options=null ) |
|
get_close_code ( ) const |
|
get_close_reason ( ) const |
|
get_connected_host ( ) const |
|
get_connected_port ( ) const |
|
get_current_outbound_buffered_amount ( ) const |
|
get_ready_state ( ) const |
|
get_requested_url ( ) const |
|
get_selected_protocol ( ) const |
|
void |
poll ( ) |
send ( PackedByteArray message, WriteMode write_mode=1 ) |
|
void |
set_no_delay ( bool enabled ) |
was_string_packet ( ) const |
Enumerations¶
enum WriteMode:
WriteMode WRITE_MODE_TEXT = 0
指定 WebSockets 消息应作为文本有效载荷传输(只允许有效的 UTF-8)。
WriteMode WRITE_MODE_BINARY = 1
指定 WebSockets 消息应以二进制有效载荷的形式传输(允许任何字节组合)。
enum State:
State STATE_CONNECTING = 0
已创建套接字。连接尚未打开。
State STATE_OPEN = 1
连接已打开,通讯就绪。
State STATE_CLOSING = 2
连接正在关闭过程中。这意味着已经向远程对等体发送了关闭请求,但还没有收到确认。
State STATE_CLOSED = 3
连接已关闭或无法打开。
Property Descriptions¶
PackedStringArray handshake_headers = PackedStringArray()
void