From 9789c55ef944ffdbfd7b2bdaf9d2a210f6572a32 Mon Sep 17 00:00:00 2001 From: Lawrence <1934378145@qq.com> Date: 星期三, 20 一月 2021 20:42:58 +0800 Subject: [PATCH] 增加SSE前端推送支持 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java | 33 ++++++++++++++++++++++++++++++--- 1 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java index b50cc95..f4e4928 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java @@ -4,14 +4,23 @@ import javax.sip.ResponseEvent; import javax.sip.SipProvider; import javax.sip.header.CSeqHeader; +import javax.sip.header.CallIdHeader; +import javax.sip.header.Header; import javax.sip.message.Request; import javax.sip.message.Response; +import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; +import com.alibaba.fastjson.JSON; +import com.genersoft.iot.vmp.gb28181.transmit.response.impl.*; +import com.genersoft.iot.vmp.gb28181.transmit.response.impl.*; +import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; +import com.genersoft.iot.vmp.vmanager.service.IPlayService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import com.genersoft.iot.vmp.conf.SipConfig; @@ -59,12 +68,15 @@ @Autowired private IRedisCatchStorage redisCatchStorage; - + @Autowired private EventPublisher publisher; @Autowired private SIPCommander cmder; + + @Autowired + private SIPCommanderFroPlatform cmderFroPlatform; @Autowired private RedisUtil redis; @@ -83,9 +95,17 @@ @Autowired private CancelResponseProcessor cancelResponseProcessor; - + + @Autowired + @Lazy + private RegisterResponseProcessor registerResponseProcessor; + + @Autowired private OtherResponseProcessor otherResponseProcessor; + + @Autowired + private IPlayService playService; // 娉細杩欓噷浣跨敤娉ㄨВ浼氬鑷村惊鐜緷璧栨敞鍏ワ紝鏆傜敤springBean @@ -98,12 +118,16 @@ Request request = evt.getRequest(); String method = request.getMethod(); // logger.info("鎺ユ敹鍒版秷鎭細"+request.getMethod()); -// sipSubscribe.getSubscribe(evt.getServerTransaction().getBranchId()).response(evt); if (Request.INVITE.equals(method)) { InviteRequestProcessor processor = new InviteRequestProcessor(); processor.setRequestEvent(evt); processor.setTcpSipProvider(getTcpSipProvider()); processor.setUdpSipProvider(getUdpSipProvider()); + + processor.setCmder(cmder); + processor.setCmderFroPlatform(cmderFroPlatform); + processor.setPlayService(playService); + processor.setStorager(storager); return processor; } else if (Request.REGISTER.equals(method)) { RegisterRequestProcessor processor = new RegisterRequestProcessor(); @@ -142,6 +166,7 @@ processor.setDeferredResultHolder(deferredResultHolder); processor.setOffLineDetector(offLineDetector); processor.setCmder(cmder); + processor.setCmderFroPlatform(cmderFroPlatform); processor.setStorager(storager); processor.setRedisCatchStorage(redisCatchStorage); return processor; @@ -161,6 +186,8 @@ return byeResponseProcessor; } else if (Request.CANCEL.equals(method)) { return cancelResponseProcessor; + }else if (Request.REGISTER.equals(method)) { + return registerResponseProcessor; } else { return otherResponseProcessor; } -- Gitblit v1.8.0