emqx私有tcp协议服务器开发---emqx_tcp_protocol模块(3)

本文详细介绍了在EMQX中开发私有TCP协议服务器的过程,聚焦于emqx_tcp_protocol模块,阐述了如何自定义协议解析和处理机制,以实现与设备的高效通信。
摘要由CSDN通过智能技术生成
deliver({message, #message{payload = Payload}},PState) ->
    send(#tcp_packet_datatrans{data = Payload,length = byte_size(Payload)}, PState);
                                 
deliver({connack, Code, Msg}, PState) ->
    send(#tcp_packet_connack{code = Code, msg = Msg},PState);
deliver(pong, PState) ->send(#tcp_packet_pong{}, PState);
    
deliver(Delivery, _PState) ->{error, {not_supported_delivery, Delivery}}.
    
send(Packet,PState = #pstate{proto_ver = Ver, sendfun = Send}) ->
     
    case Send(Packet, #{version => Ver}) of
        ok ->
            trace(send, Packet),
            {ok, PState};
        {ok, Data} ->
            trace(send, Packet),
            NPState = maybe_gc_and_check_oom(iolist_size(Data), PState),
                                            
            {ok,
             inc_stats(send,
                       begin
                           case tuple_to_l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值