程序包 com.walker.tcp
接口 ProtocolResolver<T>
- 所有已知实现类:
AbstractProtocolResolver,LineProtocolResolver,LittleDProtocolResolver,MessageProtocolResolver,StringProtocolResolver,WebsocketProtocolResolver
public interface ProtocolResolver<T>
协议解析器定义
- 作者:
- 时克英
-
字段概要
字段 -
方法概要
修饰符和类型方法说明getAuthenticateInfo(Request<?> request) 返回认证信息,通常第一次连接平台后,终端会发送认证请求。返回数据协议的结尾符号,大多数以\r\n结尾,也有#结尾等Response<?>获得一个心跳响应对象getName()解析器名字intgetOrder()顺序号来排序,同时也当做唯一ID使用返回该协议的特征,例如:有些设备通信数据包开头以IW标记,这个就是特征。getProtocolNum(T data, int size) 根据输入数据内容,返回协议编号boolean仅仅依靠报文特征来获得一个完整报文,如果是返回trueboolean是否支持未注册设备连接服务,如果允许(true)那么系统中未定义的设备也可以获得认证并提交数据。boolean是否需要再根据特征(前缀)来判断解析器类型。
-
字段详细资料
-
方法详细资料
-
getName
String getName()解析器名字- 返回:
-
getProtocolNum
根据输入数据内容,返回协议编号- 参数:
data- 原始消息内容- 返回:
- 抛出:
ProtocolException- 会抛出未找到协议编号异常
-
getProtocolFeature
Object getProtocolFeature()返回该协议的特征,例如:有些设备通信数据包开头以IW标记,这个就是特征。有些可能没有- 返回:
-
getDelimiter
String getDelimiter()返回数据协议的结尾符号,大多数以\r\n结尾,也有#结尾等- 返回:
-
getOrder
int getOrder()顺序号来排序,同时也当做唯一ID使用- 返回:
-
isRequireFeatureResolve
boolean isRequireFeatureResolve()是否需要再根据特征(前缀)来判断解析器类型。 目前多个解析情况下,主要根据分隔符来确定解析器,但如果有多个解析器分隔符一样,就要再确定前缀特征才能匹配。 因此该方法设置解析器是否需要继续根据特征来判断,查找ProtocolResolverPostProcessor- 返回:
-
getHeartBeatResponse
Response<?> getHeartBeatResponse()获得一个心跳响应对象- 返回:
-
getAuthenticateInfo
返回认证信息,通常第一次连接平台后,终端会发送认证请求。该方法返回认证后的用户信息,如:用户编号、设备编号等。- 参数:
request-- 返回:
- 抛出:
AuthenticateException
-
isPermitNotRegisterConnect
boolean isPermitNotRegisterConnect()是否支持未注册设备连接服务,如果允许(true)那么系统中未定义的设备也可以获得认证并提交数据。- 返回:
-
isOnlyMatchFeature
boolean isOnlyMatchFeature()仅仅依靠报文特征来获得一个完整报文,如果是返回true有些设备发送的数据,为了简单不会使用长报文,而且不需要处理报文合并问题,一次一个短报文, 这样就只需要根据特征区分设备信息,而且通常数据长度也在报文中,例如:充电桩。- 返回:
-