stream_socket 模块
WebSocket底层库和websocket client上层封装库
esp官方的websocket client库
class websocket_client
set_uri(client: pointer, uri: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
uri | str |
- 返回:
int
esp_websocket_client_set_uriset_headers(client: pointer, headers: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
headers | str |
- 返回:
int
esp_websocket_client_set_headersappend_header(client: pointer, key: str, value: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
key | str | |
value | str |
- 返回:
int
esp_websocket_client_append_headerdestroy_on_exit(client: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer |
- 返回:
int
esp_websocket_client_destroy_on_exitsend_bin(client: pointer, data: str, len: int, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
data | str | |
len | int | |
timeout | pointer |
- 返回:
int
esp_websocket_client_send_binsend_bin_partial(client: pointer, data: str, len: int, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
data | str | |
len | int | |
timeout | pointer |
- 返回:
int
esp_websocket_client_send_bin_partialsend_text(client: pointer, data: str, len: int, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
data | str | |
len | int | |
timeout | pointer |
- 返回:
int
esp_websocket_client_send_textsend_text_partial(client: pointer, data: str, len: int, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
data | str | |
len | int | |
timeout | pointer |
- 返回:
int
esp_websocket_client_send_text_partialsend_cont_msg(client: pointer, data: str, len: int, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
data | str | |
len | int | |
timeout | pointer |
- 返回:
int
esp_websocket_client_send_cont_msgsend_fin(client: pointer, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
timeout | pointer |
- 返回:
int
esp_websocket_client_send_finsend_with_opcode(client: pointer, opcode: pointer, data: int, len: int, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
opcode | pointer | |
data | int | |
len | int | |
timeout | pointer |
- 返回:
int
esp_websocket_client_send_with_opcodeclose(client: pointer, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
timeout | pointer |
- 返回:
int
esp_websocket_client_closeclose_with_code(client: pointer, code: int, data: str, len: int, timeout: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
code | int | |
data | str | |
len | int | |
timeout | pointer |
- 返回:
int
esp_websocket_client_close_with_codeis_connected(client: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer |
- 返回:
int
esp_websocket_client_is_connectedget_ping_interval_sec(client: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer |
- 返回:
int
esp_websocket_client_get_ping_interval_secset_ping_interval_sec(client: pointer, ping_interval_sec: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
ping_interval_sec | int |
- 返回:
int
esp_websocket_client_set_ping_interval_secget_reconnect_timeout(client: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer |
- 返回:
int
esp_websocket_client_get_reconnect_timeoutset_reconnect_timeout(client: pointer, reconnect_timeout_ms: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
reconnect_timeout_ms | int |
- 返回:
int
esp_websocket_client_set_reconnect_timeoutregister_events(client: pointer, event: pointer, event_handler: pointer) -> str
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
event | pointer | |
event_handler | pointer |
- 返回:
str
unregister_events(client: pointer, event: pointer, event_handler: pointer) -> str
| 参数 | 类型 | 说明 |
|---|---|---|
client | pointer | |
event | pointer | |
event_handler | pointer |
- 返回:
str
封装上述websocket_client类而简化和适应本平台某些特性的websocket开发的类
class WSClient
static __init__(auto_reconnect: bool) -> instance
| 参数 | 类型 | 说明 |
|---|---|---|
auto_reconnect | bool |
- 返回:
instance
wsclient_createdestroy() -> None
- 返回:
None
set_auto_packet_connected(packet: pointer, packet_size: int, is_binary: bool) -> None
| 参数 | 类型 | 说明 |
|---|---|---|
packet | pointer | |
packet_size | int | |
is_binary | bool |
- 返回:
None
enable_cache(cache_size: int, cache_from_pool: bool) -> None
启用发送缓存。当网络实际并没有连上的时候,继续发送数据就会被缓存起来,直到网络连接成功的时候就会自动优先发送
cache_size: 缓存大小,单位是字节,如果设置为0,则关闭缓存 cache_from_pool: 如果为True,则表示所使用的内存是从llpy的池中申请,那参数2就尽量不要大,如果为False则直接使用RAM,一般情况下不建议设置为False
| 参数 | 类型 | 说明 |
|---|---|---|
cache_size | int | |
cache_from_pool | bool |
- 返回:
None
close() -> None
- 返回:
None
register_event(event: str, event_handler: pointer) -> str
注册响应事件
event参数是响应事件的名称,是一个字符串,目前可用的事件名称有:before_connect|connected|disconnected|data|error|closed。 本函数所有注册的callback的1号参数都是self,所以,请确保self在整个callback周期内生命周期都是有效的,本函数不会对self的引用计数进行处理 event_handler是响应函数,响应函数分3种类型,before_connect、connected、closed和disconnected都只有一个参数,就是本类实例self。error有两个参数,参数1是self,参数2是一个整数值,表示错误码。data事件也有3个参数,self、dataptr和isBinary,其中dataptr是pointer类型,想知道dataptr实际有多少字节可以使用len(dataptr)得到,isBinary为True表示dataptr中的数据是二进制的,否则就是文本的
| 参数 | 类型 | 说明 |
|---|---|---|
event | str | |
event_handler | pointer |
- 返回:
str
wsclient_register_eventsend(data: pointer) -> str
发送数据 data: 要发送的数据,可以是pointer、bytes、str这3种类型,pointer和bytes类型会被自动的认为是二进制类型,str则会默认为文本类型
| 参数 | 类型 | 说明 |
|---|---|---|
data | pointer |
- 返回:
str
wsclient_sendbinWEBSOCKET_EVENTS: pointer =(const void*)WEBSOCKET_EVENTS