diff --git a/Doc/srmp.lua b/Doc/srmp.lua index 7090e2e..0fd2813 100644 --- a/Doc/srmp.lua +++ b/Doc/srmp.lua @@ -3,12 +3,16 @@ do -- https://www.wireshark.org/docs/wsdg_html_chunked/lua_module_Proto.html#lua_class_ProtoField local FF_flag = { - [7] = "[Reply]", - [6] = "[Error/Oneway]" - } - - -- local f_flag = ProtoField.uint8("SRMP.flag", "标记", base.HEX, FF_flag, 0xFF) - local f_flag = ProtoField.uint8("SRMP.flag", "标记", base.HEX) + [0x80] = "[Reply]", + [0x81] = "[Reply]", + [8] = "[Reply]", + [7] = "[Error/Oneway]", + [2] = "[Json]", + [1] = "[Binary]" + } + + local f_flag = ProtoField.uint8("SRMP.flag", "标记", base.HEX, FF_flag, 0xFF) + -- local f_flag = ProtoField.uint8("SRMP.flag", "标记", base.HEX) local f_seq = ProtoField.uint8("SRMP.seq", "序列号", base.DEC) local f_length = ProtoField.uint16("SRMP.length", "长度", base.DEC) local f_action = ProtoField.string("SRMP.action", "动作", base.ASCII) @@ -77,7 +81,7 @@ do end end - local udp_encap_table = DissectorTable.get("udp.port") + local udp_encap_table = DissectorTable.get("newlife") udp_encap_table:add(5500, p_srmp) udp_encap_table:add(9999, p_srmp) udp_encap_table:add(3500, p_srmp) diff --git a/NewLife.Remoting/ApiClient.cs b/NewLife.Remoting/ApiClient.cs index fc398b2..ed99940 100644 --- a/NewLife.Remoting/ApiClient.cs +++ b/NewLife.Remoting/ApiClient.cs @@ -23,6 +23,9 @@ public class ApiClient : ApiHost, IApiClient /// 服务端地址集合。负载均衡 public String[]? Servers { get; set; } + /// 本地地址。在本地有多个IP时,可以指定使用哪一个IP地址 + public NetUri Local { get; set; } + /// 客户端连接集群 public ICluster? Cluster { get; set; } @@ -397,6 +400,8 @@ protected virtual ISocketClient OnCreate(String svr) client.Timeout = Timeout; client.Tracer = Tracer; + if (Local != null) client.Local = Local; + client.Add(GetMessageCodec()); client.Opened += (s, e) => OnNewSession((s as ISocketClient)!); diff --git a/NewLife.Remoting/Clients/HttpClientBase.cs b/NewLife.Remoting/Clients/HttpClientBase.cs index f43fc3f..7eba8fe 100644 --- a/NewLife.Remoting/Clients/HttpClientBase.cs +++ b/NewLife.Remoting/Clients/HttpClientBase.cs @@ -1,4 +1,5 @@ using System.Collections.Concurrent; +using System.Net.Http; using System.Net.NetworkInformation; using NewLife; using NewLife.Caching;