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
emqx私有tcp协议服务器开发---emqx_tcp_protocol模块(3)
最新推荐文章于 2024-08-07 19:58:58 发布
本文详细介绍了在EMQX中开发私有TCP协议服务器的过程,聚焦于emqx_tcp_protocol模块,阐述了如何自定义协议解析和处理机制,以实现与设备的高效通信。
摘要由CSDN通过智能技术生成