Dream Mod 3.0Dream Mod 3.0
首页
快速开始
资源库
首页
快速开始
资源库
  • 进度

    • 更新日志
  • 指南

    • 快速上手
    • App.lua
    • Server.lua
    • 地图
    • 角色
    • 道具
    • 技能
    • 状态
    • 窗口
    • 成长
    • DmTcpClient
    • WebSocketClient
    • SqliteDB
    • 皮肤
    • 自定义组件
  • Api

    • 引擎
    • 地图
    • 角色
    • 道具
    • 技能
    • 状态
    • 窗口
    • 自定义组件
    • 音乐
    • 缓动
    • 全局
  • 控件

    • 标签
    • 按钮
    • 图片框
    • 动画框
    • 模型框
    • 文本框
    • 进度条
    • 技能格子
    • 快捷格子
    • 包裹格子
    • 道具格子
    • 角色框
    • 选择框
    • 选择夹
    • 容器
    • 地图框
    • 滑块条
    • 滚动条
    • 组合框
    • 输入框
    • 列表框
  • 组件

    • 文本
    • 艺术字
    • 精灵
    • 矩形
    • 圆形
    • 动画
    • 模型
  • 其他

    • 丰富文本
    • 模板变量
    • 资源格式
    • 游戏盒子
    • 资源列表
  • 自定义功能

    • 战斗血液效果
    • 地图天气
  • WebSocketClient

    介绍

    • WebSocket客户端组件。
    • 自动重连。
    • 推荐使用阿里云 云函数。
    介绍
    local 组件配置 = {
    	类型 = "WebSocketClient",
        名称 = "WS客户端",
    	地址 = "ws://xxxxxxxxxxxxxx",
        系统事件 = {
            创建 = function(客户端)
                
            end,
    
            连接 = function(客户端)
                调试输出("连接")
            end,
    
            消息 = function(客户端,内容)
                调试输出("消息",内容)
            end,
    
            断开 = function(客户端)
                调试输出("断开")
            end,
        }
    }
    
    return 组件配置 
    
    node.js
    const WebSocket = require('ws');
    
    const WebSocketServer = WebSocket.Server;
    
    const wss = new WebSocketServer({
      host: "0.0.0.0",
      port: 9000,
    });
    
    wss.on('connection', function (ws, req) {
      console.log(`[SERVER] connection()`);
    
      ws.on('close', function () {
        console.log(`[SERVER] close()`);
      });
    
      ws.on('message', function (message) {
        console.log(`[SERVER] message: ${message}`);
        ws.send(`${message}`);
      })
    
    
    });
    
    

    配置项

    名称类型必填说明
    类型 文本true固定值:WebSocketClient 表示这是一个WebSocketClient组件
    名称 文本true全局唯一标识
    地址 文本false服务端Url地址
    系统事件 tablefalse

    方法

    连接

    连接
    说明:连接到服务端。
    参数名称值的类型是否必填说明描述
    url 文本false服务端地址 ws:// wss://
    headers table {k,v}false自定义header

    示例

    local 结果 = self.客户端.连接()
    
    
    local headers = {}
    headers["authorization"] = "abc123"; -- 例如认证头
    self.客户端.连接(nil,headers)
    
    //nodejs 服务端
    wss.on('connection', function (ws, req) {
    
      const authHeader = req.headers['authorization'];
      if (!authHeader) {
        console.log(`[SERVER] 拒绝连接: 缺少认证信息`);
        ws.close();
        return;
      }
      console.log(`[SERVER] authHeader ${authHeader}`);
    
      const isSecure = req.socket.encrypted ||  (req.headers['x-forwarded-proto'] === 'https');
      console.log(`[${isSecure ? 'WSS' : 'WS'}] 新连接来自 ${req.socket.remoteAddress}`);
    
      ws.on('close', function () {
        console.log(`[SERVER] close()`);
      });
    
      ws.on('message', function (message) {
        ws.send(`${message}`);
      })
    });
    
    返回值值的类型说明描述
    是否成功 逻辑

    注意事项
    1、如果不填写参数,默认使用配置项中的地址。

    发送

    发送
    说明:发送消息到服务端。
    参数名称值的类型是否必填说明描述
    内容 文本false必须文本型

    示例

    self.客户端.发送("你好,我来自地球~~")
    
    local 消息 = {
    	命令 = 1000,
    	金币 = 200
    }
    
    self.客户端.发送(table.tojson(消息))
    

    断开

    断开
    说明:主动断开与服务端的连接。

    示例

    self.客户端.断开()
    

    系统事件

    🔹 创建

    创建时触发

    回调参数类型说明描述
    客户端 WebSocketClient对象

    示例

    系统事件 = {
        创建 = function(客户端)
            
        end,
    }
    

    🔹 连接

    成功连接到服务端时触发

    回调参数类型说明描述
    客户端 WebSocketClient对象

    示例

    系统事件 = {
        连接 = function(客户端)
            
        end,
    }
    

    🔹 消息

    接收到服务端消息时触发

    回调参数类型说明描述
    客户端 WebSocketClient对象
    内容 文本

    示例

    系统事件 = {
        消息 = function(客户端,内容)
            
        end,
    }
    

    🔹 断开

    与服务端断开连接时触发

    回调参数类型说明描述
    客户端 WebSocketClient对象

    示例

    系统事件 = {
        断开 = function(客户端)
            
        end,
    }
    
    Prev
    DmTcpClient
    Next
    SqliteDB