合宙Air724UG LuatOS-Air script lib API--websocket

这篇具有很好参考价值的文章主要介绍了合宙Air724UG LuatOS-Air script lib API--websocket。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

websocket
Table of Contents
websocket
websocket.new(url, cert)
ws:on(event, callback)
ws:connect(timeout)
ws:sendFrame(fin, opcode, data)
ws:recv()
ws:close(code, reason)
websocket.exit(ws)
ws:state()
ws:online()
ws:start(keepAlive, proc, reconnTime)
websocket
模块功能:websocket客户端

websocket.new(url, cert)
创建 websocket 对象

参数
名称 传入值类型 释义
url string websocket服务器的连接地址,格式为ws(或wss)😕/xxx开头
cert table 可选参数,默认为nil ssl连接需要的证书配置,cert格式如下:
{
caCert = “ca.crt”, --CA证书文件(Base64编码 X.509格式),如果存在此参数,则表示客户端会对服务器的证书进行校验;不存在则不校验
clientCert = “client.crt”, --客户端证书文件(Base64编码 X.509格式),服务器对客户端的证书进行校验时会用到此参数
clientKey = “client.key”, --客户端私钥文件(Base64编码 X.509格式)
clientPassword = “123456”, --客户端证书文件密码[可选]
insist = 1, --证书中的域名校验失败时,是否坚持连接,默认为1,坚持连接,0为不连接
}
返回值
table 返回1个websocket对象

例子
local ws = websocket.new(“ws://121.40.165.18:8800”)
详细指南和示例参考:指南 示例

ws:on(event, callback)
ws:on 注册函数

参数
名称 传入值类型 释义
event string 事件,可选值"open",“message”,“close”,“error”,“pong”
callback function 回调方法,message
返回值

例子
mt:on(“message”,function(message) local print(message)end)
详细指南和示例参考:指南 示例

ws:connect(timeout)
websocket 与 websocket 服务器建立连接

参数
名称 传入值类型 释义
timeout number 与websocket服务器建立连接最长超时
返回值
bool,true,表示连接成功,false or nil 表示连接失败

例子
while not ws:connect(20000) do sys.wait(2000) end
详细指南和示例参考:指南 示例

ws:sendFrame(fin, opcode, data)
websocket发送帧方法

参数
名称 传入值类型 释义
fin bool true表示结束帧,false表示延续帧
opcode number 0x0–0xF,其他值非法,代码意义参考websocket手册
data string 用户要发送的数据
返回值

例子
self:sendFrame(true, 0x1, “www.openluat.com”)
ws:recv()
处理 websocket 发过来的数据并拼包

参数

返回值
result, boolean: 返回数据的状态 true 为正常, false 为失败
data, string: result为true时为数据,false时为报错信息

例子
local result, data = ws:recv()
ws:close(code, reason)
关闭 websocket 与服务器的链接

参数
名称 传入值类型 释义
code number 1000或1002等,请参考websocket标准
reason string 关闭原因
返回值
nil

例子
ws:close()
ws:close(1002,“协议错误”)
websocket.exit(ws)
主动退出一个指定的websocket任务

参数

返回值
nil

例子
wesocket.exit(ws)
ws:state()
获取websocket当前状态

参数

返回值
string,状态值(“CONNECTING”,“OPEN”,“CLOSING”,“CLOSED”)

例子
ws:state()
ws:online()
获取websocket与服务器连接状态

参数

返回值
boolean: true 连接成功,其他值连接失败

例子
ws:online()
ws:start(keepAlive, proc, reconnTime)
websocket 需要在任务中启动,带自动重连,支持心跳协议

参数
名称 传入值类型 释义
keepAlive number 可选参数,默认为nil websocket心跳包,建议180秒
proc function 可选参数,默认为nil 处理服务器下发消息的函数
reconnTime number 可选参数,默认为1000 断开链接后的重连时间
返回值
nil

例子
sys.taskInit(ws.start,ws,180)
sys.taskInit(ws.start,ws,180,function(msg)u1:send(msg) end)文章来源地址https://www.toymoban.com/news/detail-651207.html


websocket
Table of Contents
websocket
websocket.new(url, cert)
ws:on(event, callback)
ws:connect(timeout)
ws:sendFrame(fin, opcode, data)
ws:recv()
ws:close(code, reason)
websocket.exit(ws)
ws:state()
ws:online()
ws:start(keepAlive, proc, reconnTime)
websocket
模块功能:websocket客户端

websocket.new(url, cert)
创建 websocket 对象

参数
名称 传入值类型 释义
url string websocket服务器的连接地址,格式为ws(或wss)😕/xxx开头
cert table 可选参数,默认为nil ssl连接需要的证书配置,cert格式如下:
{
caCert = “ca.crt”, --CA证书文件(Base64编码 X.509格式),如果存在此参数,则表示客户端会对服务器的证书进行校验;不存在则不校验
clientCert = “client.crt”, --客户端证书文件(Base64编码 X.509格式),服务器对客户端的证书进行校验时会用到此参数
clientKey = “client.key”, --客户端私钥文件(Base64编码 X.509格式)
clientPassword = “123456”, --客户端证书文件密码[可选]
insist = 1, --证书中的域名校验失败时,是否坚持连接,默认为1,坚持连接,0为不连接
}
返回值
table 返回1个websocket对象

例子
local ws = websocket.new(“ws://121.40.165.18:8800”)
详细指南和示例参考:指南 示例

ws:on(event, callback)
ws:on 注册函数

参数
名称 传入值类型 释义
event string 事件,可选值"open",“message”,“close”,“error”,“pong”
callback function 回调方法,message
返回值

例子
mt:on(“message”,function(message) local print(message)end)
详细指南和示例参考:指南 示例

ws:connect(timeout)
websocket 与 websocket 服务器建立连接

参数
名称 传入值类型 释义
timeout number 与websocket服务器建立连接最长超时
返回值
bool,true,表示连接成功,false or nil 表示连接失败

例子
while not ws:connect(20000) do sys.wait(2000) end
详细指南和示例参考:指南 示例

ws:sendFrame(fin, opcode, data)
websocket发送帧方法

参数
名称 传入值类型 释义
fin bool true表示结束帧,false表示延续帧
opcode number 0x0–0xF,其他值非法,代码意义参考websocket手册
data string 用户要发送的数据
返回值

例子
self:sendFrame(true, 0x1, “www.openluat.com”)
ws:recv()
处理 websocket 发过来的数据并拼包

参数

返回值
result, boolean: 返回数据的状态 true 为正常, false 为失败
data, string: result为true时为数据,false时为报错信息

例子
local result, data = ws:recv()
ws:close(code, reason)
关闭 websocket 与服务器的链接

参数
名称 传入值类型 释义
code number 1000或1002等,请参考websocket标准
reason string 关闭原因
返回值
nil

例子
ws:close()
ws:close(1002,“协议错误”)
websocket.exit(ws)
主动退出一个指定的websocket任务

参数

返回值
nil

例子
wesocket.exit(ws)
ws:state()
获取websocket当前状态

参数

返回值
string,状态值(“CONNECTING”,“OPEN”,“CLOSING”,“CLOSED”)

例子
ws:state()
ws:online()
获取websocket与服务器连接状态

参数

返回值
boolean: true 连接成功,其他值连接失败

例子
ws:online()
ws:start(keepAlive, proc, reconnTime)
websocket 需要在任务中启动,带自动重连,支持心跳协议

参数
名称 传入值类型 释义
keepAlive number 可选参数,默认为nil websocket心跳包,建议180秒
proc function 可选参数,默认为nil 处理服务器下发消息的函数
reconnTime number 可选参数,默认为1000 断开链接后的重连时间
返回值
nil

例子
sys.taskInit(ws.start,ws,180)
sys.taskInit(ws.start,ws,180,function(msg)u1:send(msg) end)

到了这里,关于合宙Air724UG LuatOS-Air script lib API--websocket的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 合宙Air724UG LuatOS-Air script lib API--utils

    utils Table of Contents utils string.toHex(str, separator) string.fromHex(hex) string.utf8Len(str) string.utf8ToTable(str) string.rawurlEncode(str) string.urlEncode(str) table.gsort(t, f) table.rconcat(l) string.formatNumberThousands(num) string.split(str, delimiter) io.exists(path) io.readFile(path) io.writeFile(path, content, mode) io.pathInfo(path) io.fil

    2024年02月12日
    浏览(37)
  • 合宙Air724UG LuatOS-Air script lib API--patch

    patch Table of Contents patch patch.safeJsonDecode(s) (local函数 无法被外部调用) patch 模块功能:Lua补丁 patch.safeJsonDecode(s) (local函数 无法被外部调用) 封装自定义的json.decode接口 参数 名称 传入值类型 释义 s string json格式的字符串 返回值 table,第一个返回值为解析json字符串后的table boole,第

    2024年02月14日
    浏览(46)
  • 合宙Air724UG LuatOS-Air script lib API--http

    Table of Contents http http.request(method, url, cert, head, body, timeout, cbFnc, rcvFileName, tCoreExtPara) http 模块功能:HTTP客户端 http.request(method, url, cert, head, body, timeout, cbFnc, rcvFileName, tCoreExtPara) 发送HTTP请求 参数 名称 传入值类型 释义 method string HTTP请求方法 支持\\\"GET\\\",“HEAD”,“POST”,“O

    2024年02月15日
    浏览(80)
  • 合宙Air724UG LuatOS-Air script lib API--socketCh395

    socketCh395 Table of Contents socketCh395 socketCh395.open(para) socketCh395.tcp(ssl, cert, tCoreExtPara) socketCh395.udp(localPort) mt:connect(address, port, timeout) mt:serverSelect(keepAlive, pingreq) mt:asyncSelect(keepAlive, pingreq) mt:serverSend(data, timeout) mt:serverRecv() mt:asyncSend(data, timeout) mt:asyncRecv() mt:send(data, timeout) mt:recv(ti

    2024年02月12日
    浏览(83)
  • 合宙Air724UG LuatOS-Air LVGL API--简介

    为何是 LVGL LVGL 是一个开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。 LVGL特点: 强大的 控件 :按钮、图表、列表、滑动条、图像等 高级图形引擎:动画、抗锯齿、不透明、平滑滚动、混合模式等 支持

    2024年02月12日
    浏览(33)
  • 合宙Air724UG LuatOS-Air LVGL API-概念

    概念 在 LVGL 中,用户界面的基本构建块是对象。例如,按钮,标签,图像,列表,图表或文本区域。 属性 基本属性 所有对象类型都共享一些基本属性: Position (位置) Size (尺寸) Parent (父母) Click enable (单击启用) 我们可以使用 lvgl.obj_set_… 和 lvgl.obj_get_… 等前缀的函数设置或

    2024年02月11日
    浏览(32)
  • 合宙Air724UG LuatOS-Air LVGL API--对象

    对象 概念 在 LVGL 中,用户界面的基本构建块是对象。例如,按钮,标签,图像,列表,图表或文本区域。 属性 基本属性 所有对象类型都共享一些基本属性: Position (位置) Size (尺寸) Parent (父母) Click enable (单击启用) 我们可以使用 lvgl.obj_set_… 和 lvgl.obj_get_… 等前缀的函数设

    2024年02月12日
    浏览(48)
  • 合宙Air724UG LuatOS-Air core API--qrencode

    qrencode Table of Contents qrencode qrencode.encode(data [,version,level]) qrencode 二维码生成 qrencode.encode(data [,version,level]) 二维码编码 参数 参数 类型 释义 取值 data string 需要编码的数据 string类型 version number 二维码版本 可选参数0-40 level number 二维码纠错等级 0-3 返回值 返回值 类型 释义 取值

    2024年02月12日
    浏览(46)
  • 合宙Air724UG LuatOS-Air LVGL API控件-窗口 (Window)

    窗口 (Window) 分 享导出pdf | lvgl.win_create 调用 lvgl.win_create(par, copy) 功能 创建一个窗口对象 返回 指向创建的窗口的指针 参数 par 指向对象的指针, 它将是新键对象的父对象 copy 指向窗口对象的指针, 如果不为 nil, 则将从其复制新对象 lvgl.win_clean 调用 lvgl.win_clean(win) 功能 清除窗口

    2024年02月09日
    浏览(51)
  • 合宙Air724UG LuatOS-Air LVGL API控件-页面 (Page)

    页面 (Page) 当控件内容过多,无法在屏幕内完整显示时,可让其在  页面  内显示。 通过函数  lvgl.page_create  可以创建一个页面 页面对象可以像容器一样设置各个方向上的匹配模式,可以把需要显示的对象添加进页面进行显示,页面可以作为控件的父容器。就像下面这样,

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包