648540858
2021-01-12 9de1bef82147389a524f2096d99d9a7aa5440538
Merge pull request #34 from lawrencehj/wvp-28181-2.0

解决非默认端口无法Send Bye的问题
3个文件已修改
24 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_src/src/components/gb28181/devicePlayer.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -409,12 +409,7 @@
        try {
            MediaServerConfig mediaInfo = redisCatchStorage.getMediaInfo();
            String ssrc = streamSession.createPlayBackSsrc();
            String streamId = null;
            if (rtpEnable) {
                streamId = String.format("gb_playback_%s_%s", device.getDeviceId(), channelId);
            }else {
                streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
            }
            String streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase();
            // 添加订阅
            JSONObject subscribeKey = new JSONObject();
            subscribeKey.put("app", "rtp");
@@ -531,7 +526,10 @@
            Pattern p = Pattern.compile("(\\d+\\.\\d+\\.\\d+\\.\\d+)\\:(\\d+)");
            Matcher matcher = p.matcher(vh);
            if (matcher.find()) {
                byeURI.setHost(matcher.group(1));
                String ip = matcher.group(1);
                byeURI.setHost(ip);
                String port = matcher.group(2);
                byeURI.setPort(Integer.parseInt(port));
            }
            ViaHeader viaHeader = (ViaHeader) byeRequest.getHeader(ViaHeader.NAME);
            String protocol = viaHeader.getTransport().toUpperCase();
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -342,7 +342,7 @@
        try {
            // 回复200 OK
            responseAck(evt);
            String seqNo = String.valueOf(System.currentTimeMillis());
            String uuid = UUID.randomUUID().toString().replace("-", "");
            RecordInfo recordInfo = new RecordInfo();
            Element rootElement = getRootElement(evt);
            Element deviceIdElement = rootElement.element("DeviceID");
@@ -398,7 +398,7 @@
                    // 为防止连续请求该设备的录像数据,返回数据错乱,特增加sn进行区分
                    String cacheKey = CACHE_RECORDINFO_KEY + deviceId + sn;
                    redis.set(cacheKey + "_" + seqNo, recordList, 90);
                    redis.set(cacheKey + "_" + uuid, recordList, 90);
                    List<Object> cacheKeys = redis.scan(cacheKey + "_*");
                    List<RecordItem> totalRecordList = new ArrayList<RecordItem>();
                    for (int i = 0; i < cacheKeys.size(); i++) {
web_src/src/components/gb28181/devicePlayer.vue
@@ -183,7 +183,8 @@
            scanGroup: 0,
            tracks: [],
            coverPlaying:false,
            tracksLoading: false
            tracksLoading: false,
            recordPlay: ""
        };
    },
    methods: {
@@ -318,6 +319,10 @@
              this.convertStop();
            }
            this.convertKey = ''
            if (this.recordPlay != '') {
              this.stopPlayRecord();
            }
            this.recordPlay = ''
        },
        copySharedInfo: function (data) {
@@ -384,6 +389,7 @@
                    var streamInfo = res.data;
                    that.streamId = streamInfo.streamId;
                    that.videoUrl = streamInfo.ws_flv;
                    that.recordPlay = true;
                });
            }
        },