Class TransactionAwareMessageHandlerAbstract
java.lang.Object
io.github.lunasaw.sip.common.transmit.event.message.TransactionAwareMessageHandlerAbstract
- All Implemented Interfaces:
RequestHandler,MessageHandler,org.springframework.beans.factory.InitializingBean
public abstract class TransactionAwareMessageHandlerAbstract
extends Object
implements MessageHandler, org.springframework.beans.factory.InitializingBean
事务感知的消息处理器抽象基类
继承原有MessageHandlerAbstract,增强事务管理能力
- Author:
- weidian, luna (enhanced)
-
Field Summary
Fields inherited from interface io.github.lunasaw.sip.common.transmit.event.message.MessageHandler
CONTROL, NOTIFY, QUERY, RESPONSE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidprotected voiddoHandleWithContext(javax.sip.RequestEvent event) 子类实现的具体处理逻辑(在事务上下文中执行) 子类可以重写此方法来实现具体的业务逻辑protected voidexecuteWithTransactionContext(String operation, Runnable action) 安全执行需要事务上下文的操作处理消息类型获取当前事务上下文信息protected String获取当前事务上下文的详细信息(用于日志和调试)getDeviceSession(javax.sip.RequestEvent event) 获取设备会话(子类可重写)获取处理器状态信息获取处理方法处理标签voidhandForEvt(javax.sip.RequestEvent event) 处理消息protected voidhandleWithTransactionContext(javax.sip.RequestEvent event, String operation) 事务感知的消息处理模板方法 子类可以重写此方法来利用事务上下文进行处理protected boolean检查当前是否有有效的事务上下文protected voidlogTransactionContextStatus(String operation) 记录事务上下文状态(用于调试)static StringparseRequest(javax.sip.RequestEvent event, String charset) 解析请求内容为字符串(静态方法保持兼容)static <T> TparseRequest(javax.sip.RequestEvent event, String charset, Class<T> clazz) 解析请求内容为对象(静态方法保持兼容)voidresponseAck(javax.sip.RequestEvent event) 事务感知的ACK响应(优先使用事务上下文)voidresponseAck(javax.sip.RequestEvent event, javax.sip.ServerTransaction serverTransaction) 事务感知的ACK响应(使用预创建的事务)voidresponseError(javax.sip.RequestEvent event) 事务感知的错误响应voidresponseError(javax.sip.RequestEvent event, Integer code, String error) 事务感知的自定义错误响应void当前接受到的原始消息Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.github.lunasaw.sip.common.transmit.event.message.MessageHandler
needResponseAck, responseError
-
Constructor Details
-
TransactionAwareMessageHandlerAbstract
public TransactionAwareMessageHandlerAbstract()
-
-
Method Details
-
parseRequest
解析请求内容为对象(静态方法保持兼容) -
parseRequest
解析请求内容为字符串(静态方法保持兼容) -
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
handForEvt
public void handForEvt(javax.sip.RequestEvent event) Description copied from interface:MessageHandler处理消息- Specified by:
handForEvtin interfaceMessageHandler
-
getRootType
Description copied from interface:MessageHandler处理标签- Specified by:
getRootTypein interfaceMessageHandler- Returns:
-
getMethod
Description copied from interface:MessageHandler获取处理方法- Specified by:
getMethodin interfaceMessageHandler- Returns:
-
getCmdType
Description copied from interface:MessageHandler处理消息类型- Specified by:
getCmdTypein interfaceMessageHandler- Returns:
-
setXmlStr
Description copied from interface:MessageHandler当前接受到的原始消息- Specified by:
setXmlStrin interfaceMessageHandler
-
getDeviceSession
获取设备会话(子类可重写) -
responseAck
public void responseAck(javax.sip.RequestEvent event) 事务感知的ACK响应(优先使用事务上下文)- Specified by:
responseAckin interfaceMessageHandler- Parameters:
event- 请求事件
-
responseAck
public void responseAck(javax.sip.RequestEvent event, javax.sip.ServerTransaction serverTransaction) 事务感知的ACK响应(使用预创建的事务)- Specified by:
responseAckin interfaceMessageHandler- Parameters:
event- 请求事件serverTransaction- 预创建的服务器事务(可为null)
-
responseError
public void responseError(javax.sip.RequestEvent event) 事务感知的错误响应- Specified by:
responseErrorin interfaceMessageHandler- Parameters:
event- 请求事件
-
responseError
事务感知的自定义错误响应- Specified by:
responseErrorin interfaceMessageHandler
-
getCurrentTransactionContext
获取当前事务上下文信息 -
hasValidTransactionContext
protected boolean hasValidTransactionContext()检查当前是否有有效的事务上下文 -
getCurrentTransactionInfo
获取当前事务上下文的详细信息(用于日志和调试) -
logTransactionContextStatus
记录事务上下文状态(用于调试) -
executeWithTransactionContext
安全执行需要事务上下文的操作 -
handleWithTransactionContext
事务感知的消息处理模板方法 子类可以重写此方法来利用事务上下文进行处理 -
doHandleWithContext
protected void doHandleWithContext(javax.sip.RequestEvent event) 子类实现的具体处理逻辑(在事务上下文中执行) 子类可以重写此方法来实现具体的业务逻辑 -
getHandlerStatusInfo
获取处理器状态信息
-