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

    • 更新日志
  • 指南

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

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

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

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

    • 丰富文本
    • 模板变量
    • 游戏盒子

DmTcpClient

介绍

  • 服务端 Server.lua 模式下配套的客户端组件。
  • 自动心跳,自动重连。
local 客户端配置 = 
{
    类型 = "DmTcpClient",
    名称 = "客户端",
    ip = "127.0.0.1",
    端口 = 17173,
	系统事件 = {

		创建 = function(client) 
            调试输出("创建",client)
		end,

		进入 = function(client)	
            调试输出("连接成功",client.cid)
		end,

		消息 = function(client,tbl)	
            调试输出("消息",tbl)
		end,

		断开 = function(client)	
            调试输出("连接断开")
		end,

	}
}
return 客户端配置

配置项

名称类型必填说明
类型 文本true固定值:DmTcpClient 表示这是一个DmTcpClient组件
名称 文本true全局唯一标识
ip 文本true服务端ip
端口 整数true服务端端口
token 整数false在服务端的[连接]事件中可以获得。默认:0
系统事件 tablefalse

属性

cid

  • 类型:整数
  • 读写:只读
  • 说明:通信标识

已连接

  • 类型:逻辑
  • 读写:只读
  • 说明:是否已经连接到服务端。

方法

连接

连接
说明:连接到服务端。
参数名称值的类型是否必填说明描述
ip 文本false
端口 整数false

示例

local 结果 = self.客户端.连接()
返回值值的类型说明描述
是否成功 逻辑

注意事项
1、如果不填写ip,端口,表示使用配置项中的信息。

发送

发送
说明:发送消息到服务端。
参数名称值的类型是否必填说明描述
数据 tabletrue必须table型
同步模式 逻辑falseSync同步模式 默认:false

示例

L系统.客户端.发送({cmd="聊天消息",text="我是月野兔~~我来了!"})


--=========================
-- 客户端脚本 按钮事件
--=========================

点击 = function(按钮对象)
  按钮对象.禁用 = true
  local 值 = 0
  for n=1,10 do
    local res = L系统.客户端.发送({cmd="自增",num=值},true) -- 同步模式,消息发送后等待服务端返回,否则阻塞脚本继续运行
    if(res) then
      值 = res.结果
    end
  end
  调试输出("计算结果",值)
  按钮对象.禁用 = false
end


--=========================
-- 服务端脚本
--=========================

消息 = function(server,tbl)	
  local cid = tbl.cid
  local syncid = tbl.syncid -- 同步消息才有
  local 信息 = tbl.msg
  if (信息.cmd == "自增") then
    server.发送(cid,{结果=信息.num + 1},syncid) -- 收到客户端同步消息后 使用同步模式返回
    return 
  end
end,

返回值值的类型说明描述
是否成功 逻辑/table失败返回false

注意事项
1、服务端接收到带有syncid编号的客户端同步消息,必须使用同样的syncid发送才会同步。

断开

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

示例

self.客户端.断开()

加入事件

加入事件
说明:加入一个自定义事件。
参数名称值的类型是否必填说明描述
事件名称 文本true触发的事件名称
附加信息 tablefalse事件触发时可以取出
延迟时间 数值false延迟执行
自动销毁 逻辑false是否只执行一次,默认:true

示例

系统事件 = {

  创建 = function(client)
    client.加入事件("系统时钟",{},1000,false)
  end,

  系统时钟 = function (client,tbl,dt,time)
    调试输出(dt,time)
  end,

}

删除事件

删除事件
说明:删除指定自定义事件。
参数名称值的类型是否必填说明描述
事件名称 文本true

示例

系统事件 = {

    创建 = function(client)
       client.加入事件("系统时钟",{},1000,false)
    end,

    系统时钟 = function (client,tbl,dt,time)
      调试输出(dt,time)
      client.删除事件("系统时钟")
    end,

}

系统事件

🔹 创建

创建时触发

回调参数类型说明描述
client DmTcpClient

示例

系统事件 = {
    创建 = function(client)
        
    end,
}

🔹 进入

成功进入到服务端时触发

回调参数类型说明描述
client DmTcpClient

示例

系统事件 = {
    进入 = function(client)
      调试输出("连接成功",client.cid)
    end,
}

🔹 消息

接收到服务端消息时触发

回调参数类型说明描述
client DmTcpClient
tbl table

示例

系统事件 = {
    消息 = function(client,tbl)
      调试输出("消息",tbl)
    end,
}

🔹 断开

与服务端断开连接时触发

回调参数类型说明描述
client DmTcpClient

示例

系统事件 = {
    断开 = function(client)
        
    end,
}

提示

断开后,系统会按间隔触发自动重连。

🔹 自定义事件

是指通过Api [加入事件] 创建的事件。

回调参数类型说明描述
client DmTcpClient
事件附加 table 是指通过Api [加入事件]中传递进来的 附加信息
dt 数值 事件执行的实际间隔时间
time 数值 事件执行的总时间

示例

系统事件 = {

  创建 = function(client)
    client.加入事件("定时器",{计次=0},1000,false)
  end,

  定时器 = function (client,tbl,dt,time)
    tbl.计次 = tbl.计次 + 1
    调试输出("时钟 " .. tbl.计次 .. "秒")
  end,

}
Prev
成长
Next
WebSocketClient