| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- --- 模块功能:socket客户端数据发送处理
- -- @author openLuat
- -- @module socketLongConnectionTrasparent.socketOutMsg
- -- @license MIT
- -- @copyright openLuat
- -- @release 2018.03.28
- module(...,package.seeall)
- --数据发送的消息队列
- local msgQueue = {}
- local function insertMsg(data,user)
- table.insert(msgQueue,{data=data,user=user})
- sys.publish("APP_SOCKET_SEND_DATA")
- end
- --- 去初始化“socket客户端数据发送”
- -- @return 无
- -- @usage socketOutMsg.unInit()
- function unInit()
- while #msgQueue>0 do
- local outMsg = table.remove(msgQueue,1)
- if outMsg.user and outMsg.user.cb then outMsg.user.cb(false,outMsg.user.para) end
- end
- end
- --- socket客户端数据发送处理
- -- @param socketClient,socket客户端对象
- -- @return 处理成功返回true,处理出错返回false
- -- @usage socketOutMsg.proc(socketClient)
- function proc(socketClient)
- while #msgQueue>0 do
- local outMsg = table.remove(msgQueue,1)
- local result = socketClient:send(outMsg.data)
- if outMsg.user and outMsg.user.cb then outMsg.user.cb(result,outMsg.user.para) end
- if not result then return end
- end
- return true
- end
- local function uartRecvData(data)
- insertMsg(data)
- end
- sys.subscribe("UART_RECV_DATA",uartRecvData)
|