From 4babf2b47b894c2fc445db46c00d88efbbecc1d0 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 10 一月 2023 16:26:52 +0800 Subject: [PATCH] 更新README --- doc/_media/3-1.png | 0 src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java | 2 src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 18 ++-- doc/_media/index.png | 0 doc/_media/3.png | 0 doc/_media/3-3.png | 0 doc/_media/3-2.png | 0 src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java | 24 ++++- README.md | 155 ++++++++++++++------------------------ doc/_media/2.png | 0 10 files changed, 85 insertions(+), 114 deletions(-) diff --git a/README.md b/README.md index 050c138..b581dd6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - + # 寮�绠卞嵆鐢ㄧ殑28181鍗忚瑙嗛骞冲彴 [](https://travis-ci.org/xia-chu/ZLMediaKit) @@ -17,7 +17,7 @@ # 搴旂敤鍦烘櫙锛� 鏀寔娴忚鍣ㄦ棤鎻掍欢鎾斁鎽勫儚澶磋棰戙�� 鏀寔鎽勫儚鏈恒�佸钩鍙般�丯VR绛夎澶囨帴鍏ャ�� -鏀寔鍥芥爣绾ц仈銆� +鏀寔鍥芥爣绾ц仈銆傚骞冲彴绾ц仈銆傝法缃戣棰戦瑙堛�� 鏀寔rtsp/rtmp绛夎棰戞祦杞彂鍒板浗鏍囧钩鍙般�� 鏀寔rtsp/rtmp绛夋帹娴佽浆鍙戝埌鍥芥爣骞冲彴銆� @@ -31,62 +31,49 @@ https://gitee.com/pan648540858/wvp-GB28181-pro.git # 鎴浘 - - - - - - - + + + + + + + -# 1.0 鍩虹鐗规�� -1. 瑙嗛棰勮; -2. 浜戝彴鎺у埗锛堟柟鍚戙�佺缉鏀炬帶鍒讹級; -3. 瑙嗛璁惧淇℃伅鍚屾; -4. 绂诲湪绾跨洃鎺�; -5. 褰曞儚鏌ヨ涓庡洖鏀撅紙鍩轰簬NVR\DVR锛屾殏涓嶆敮鎸佸揩杩涖�乻eek鎿嶄綔锛�; -6. 鏃犱汉瑙傜湅鑷姩鏂祦; -7. 鏀寔UDP鍜孴CP涓ょ鍥芥爣淇′护浼犺緭妯″紡; -8. 闆嗘垚web鐣岄潰, 涓嶉渶瑕佸崟鐙儴缃插墠绔湇鍔�, 鐩存帴鍒╃敤wvp鍐呯疆鏂囦欢鏈嶅姟閮ㄧ讲, 闅弚vp涓�璧烽儴缃�; -9. 鏀寔骞冲彴鎺ュ叆, 閽堝澶у钩鍙板ぇ閲忚澶囩殑鎯呭喌杩涜浼樺寲; -10. 鏀寔妫�绱�,閫氶亾绛涢��; -11. 鏀寔鑷姩閰嶇疆ZLM濯掍綋鏈嶅姟, 鍑忓皯鍥犻厤缃棶棰樻墍鍑虹幇鐨勯棶棰�; -12. 鏀寔鍚敤udp澶氱鍙fā寮�, 鎻愰珮udp妯″紡涓嬪獟浣撲紶杈撴�ц兘; -13. 鏀寔閫氶亾鏄惁鍚湁闊抽鐨勮缃�; -14. 鏀寔閫氶亾瀛愮洰褰曟煡璇�; -15. 鏀寔udp/tcp鍥芥爣娴佷紶杈撴ā寮�; -16. 鏀寔鐩存帴杈撳嚭RTSP銆丷TMP銆丠TTP-FLV銆乄ebsocket-FLV銆丠LS澶氱鍗忚娴佸湴鍧� -17. 鏀寔鍥芥爣缃戠粶鏍℃椂 -18. 鏀寔鍏綉閮ㄧ讲, 鏀寔wvp涓巣lm鍒嗗紑閮ㄧ讲 -19. 鏀寔鎾斁h265, g.711鏍煎紡鐨勬祦(闇�瑕佸皢closeWaitRTPInfo璁句负false) -20. 鎶ヨ淇℃伅澶勭悊锛屾敮鎸佸悜鍓嶇鎺ㄩ�佹姤璀︿俊鎭� - -# 1.0 鏂版敮鎸佺壒鎬� -1. 闆嗘垚web鐣岄潰, 涓嶉渶瑕佸崟鐙儴缃插墠绔湇鍔�, 鐩存帴鍒╃敤wvp鍐呯疆鏂囦欢鏈嶅姟閮ㄧ讲, 闅弚vp涓�璧烽儴缃�; -2. 鏀寔骞冲彴鎺ュ叆, 閽堝澶у钩鍙板ぇ閲忚澶囩殑鎯呭喌杩涜浼樺寲; -3. 鏀寔妫�绱�,閫氶亾绛涢��; -4. 鏀寔鑷姩閰嶇疆ZLM濯掍綋鏈嶅姟, 鍑忓皯鍥犻厤缃棶棰樻墍鍑虹幇鐨勯棶棰�; -5. 鏀寔鍚敤udp澶氱鍙fā寮�, 鎻愰珮udp妯″紡涓嬪獟浣撲紶杈撴�ц兘; -6. 鏀寔閫氶亾鏄惁鍚湁闊抽鐨勮缃�; -7. 鏀寔閫氶亾瀛愮洰褰曟煡璇�; -8. 鏀寔udp/tcp鍥芥爣娴佷紶杈撴ā寮�; -9. 鏀寔鐩存帴杈撳嚭RTSP銆丷TMP銆丠TTP-FLV銆乄ebsocket-FLV銆丠LS澶氱鍗忚娴佸湴鍧� -10. 鏀寔鍥芥爣缃戠粶鏍℃椂 -11. 鏀寔鍏綉閮ㄧ讲, 鏀寔wvp涓巣lm鍒嗗紑閮ㄧ讲 -12. 鏀寔鎾斁h265, g.711鏍煎紡鐨勬祦 -13. 鏀寔鍥哄畾娴佸湴鍧�鍜岃嚜鍔ㄧ偣鎾紝鍚屾椂鏀寔鏈偣鎾椂鐩存帴鎾斁娴佸湴鍧�锛屼唬鐮佽嚜鍔ㄥ彂璧风偣鎾�. ( [鏌ョ湅WIKI](https://github.com/648540858/wvp-GB28181-pro/wiki/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%9B%BA%E5%AE%9A%E6%92%AD%E6%94%BE%E5%9C%B0%E5%9D%80%E4%B8%8E%E8%87%AA%E5%8A%A8%E7%82%B9%E6%92%AD)锛� -14. 鎶ヨ淇℃伅澶勭悊锛屾敮鎸佸悜鍓嶇鎺ㄩ�佹姤璀︿俊鎭� -15. 鏀寔璁㈤槄涓庨�氱煡鏂规硶 - - [X] 绉诲姩浣嶇疆璁㈤槄 - - [X] 绉诲姩浣嶇疆閫氱煡澶勭悊 - - [X] 鎶ヨ浜嬩欢璁㈤槄 - - [X] 鎶ヨ浜嬩欢閫氱煡澶勭悊 - - [X] 璁惧鐩綍璁㈤槄 - - [X] 璁惧鐩綍閫氱煡澶勭悊 -16. 绉诲姩浣嶇疆鏌ヨ鍜屾樉绀猴紝鍙�氳繃閰嶇疆鏂囦欢璁剧疆绉诲姩浣嶇疆鍘嗗彶鏄惁瀛樺偍 - -# 2.0 鏀寔鐗规�� -- [X] 鍥芥爣閫氶亾鍚戜笂绾ц仈 +# 鍔熻兘鐗规�� +- [X] 闆嗘垚web鐣岄潰 +- [X] 鍏煎鎬ц壇濂� +- [X] 鏀寔鐢靛瓙鍦板浘锛屾敮鎸佹帴鍏GS84鍜孏CJ02涓ょ鍧愭爣绯伙紝骞朵笖鑷姩杞寲涓哄悎閫傜殑鍧愭爣绯昏繘琛屽睍绀哄拰鍒嗗彂 +- [X] 鎺ュ叆璁惧 + - [X] 瑙嗛棰勮 + - [X] 鏃犻檺鍒舵帴鍏ヨ矾鏁帮紝鑳芥帴鍏ュ灏戣澶囧彧鍙栧喅浜庝綘鐨勬湇鍔″櫒鎬ц兘 + - [X] 浜戝彴鎺у埗锛屾帶鍒惰澶囪浆鍚戯紝鎷夎繎锛屾媺杩� + - [X] 棰勭疆浣嶆煡璇紝浣跨敤涓庤缃� + - [X] 鏌ヨNVR/IPC涓婄殑褰曞儚涓庢挱鏀撅紝鏀寔鎸囧畾鏃堕棿鎾斁涓庝笅杞� + - [X] 鏃犱汉瑙傜湅鑷姩鏂祦锛岃妭鐪佹祦閲� + - [X] 瑙嗛璁惧淇℃伅鍚屾 + - [X] 绂诲湪绾跨洃鎺� + - [X] 鏀寔鐩存帴杈撳嚭RTSP銆丷TMP銆丠TTP-FLV銆乄ebsocket-FLV銆丠LS澶氱鍗忚娴佸湴鍧� + - [X] 鏀寔閫氳繃涓�涓祦鍦板潃鐩存帴瑙傜湅鎽勫儚澶达紝鏃犻渶鐧诲綍浠ュ強璋冪敤浠讳綍鎺ュ彛 + - [X] 鏀寔UDP鍜孴CP涓ょ鍥芥爣淇′护浼犺緭妯″紡 + - [X] 鏀寔UDP鍜孴CP涓ょ鍥芥爣娴佷紶杈撴ā寮� + - [X] 鏀寔妫�绱�,閫氶亾绛涢�� + - [X] 鏀寔閫氶亾瀛愮洰褰曟煡璇� + - [X] 鏀寔杩囨护闊抽锛岄槻姝㈡潅闊冲奖鍝嶈鐪� + - [X] 鏀寔鍥芥爣缃戠粶鏍℃椂 + - [X] 鏀寔鎾斁H264鍜孒265 + - [X] 鎶ヨ淇℃伅澶勭悊锛屾敮鎸佸悜鍓嶇鎺ㄩ�佹姤璀︿俊鎭� + - [X] 鏀寔璁㈤槄涓庨�氱煡鏂规硶 + - [X] 绉诲姩浣嶇疆璁㈤槄 + - [X] 绉诲姩浣嶇疆閫氱煡澶勭悊 + - [X] 鎶ヨ浜嬩欢璁㈤槄 + - [X] 鎶ヨ浜嬩欢閫氱煡澶勭悊 + - [X] 璁惧鐩綍璁㈤槄 + - [X] 璁惧鐩綍閫氱煡澶勭悊 + - [X] 绉诲姩浣嶇疆鏌ヨ鍜屾樉绀� + - [X] 鏀寔鎵嬪姩娣诲姞璁惧鍜岀粰璁惧璁剧疆鍗曠嫭鐨勫瘑鐮� +- [X] 鏀寔骞冲彴瀵规帴鎺ュ叆 +- [X] 鏀寔鍥芥爣绾ц仈 + - [X] 鍥芥爣閫氶亾鍚戜笂绾ц仈 - [X] WEB娣诲姞涓婄骇骞冲彴 - [X] 娉ㄥ唽 - [X] 蹇冭烦淇濇椿 @@ -101,54 +88,25 @@ - [X] 鐩綍璁㈤槄涓庨�氱煡 - [X] 褰曞儚鏌ョ湅涓庢挱鏀� - [X] GPS璁㈤槄涓庨�氱煡锛堢洿鎾帹娴侊級 -- [X] 鏀寔鎵嬪姩娣诲姞璁惧鍜岀粰璁惧璁剧疆鍗曠嫭鐨勫瘑鐮� -- [X] 娣诲姞RTSP瑙嗛 -- [X] 娣诲姞鎺ュ彛閴存潈 -- [X] 娣诲姞RTMP瑙嗛 -- [X] 浜戠褰曞儚锛堥渶瑕侀儴缃插崟鐙湇鍔¢厤鍚堜娇鐢級 -- [X] 澶氭祦濯掍綋鑺傜偣锛岃嚜鍔ㄩ�夋嫨璐熻浇鏈�浣庣殑鑺傜偣浣跨敤銆� -- [X] WEB绔敮鎸佹挱鏀綡264涓嶩265锛岄煶棰戞敮鎸丟.711A/G.711U/AAC,瑕嗙洊鍥芥爣甯哥敤缂栫爜鏍煎紡銆� -- [X] 鏀寔鐢靛瓙鍦板浘銆� -- [X] 鏀寔鎺ュ叆WGS84鍜孏CJ02涓ょ鍧愭爣绯汇�� +- [X] 鏀寔鑷姩閰嶇疆ZLM濯掍綋鏈嶅姟, 鍑忓皯鍥犻厤缃棶棰樻墍鍑虹幇鐨勯棶棰�; +- [X] 澶氭祦濯掍綋鑺傜偣锛岃嚜鍔ㄩ�夋嫨璐熻浇鏈�浣庣殑鑺傜偣浣跨敤銆� +- [X] 鏀寔鍚敤udp澶氱鍙fā寮�, 鎻愰珮udp妯″紡涓嬪獟浣撲紶杈撴�ц兘; +- [X] 鏀寔鍏綉閮ㄧ讲锛� +- [X] 鏀寔wvp涓巣lm鍒嗗紑閮ㄧ讲锛屾彁鍗囧钩鍙板苟鍙戣兘鍔� +- [X] 鏀寔鎷夋祦RTSP/RTMP锛屽垎鍙戜负鍚勭娴佹牸寮忥紝鎴栬�呮帹閫佸埌鍏朵粬鍥芥爣骞冲彴 +- [X] 鏀寔鎺ㄦ祦RTSP/RTMP锛屽垎鍙戜负鍚勭娴佹牸寮忥紝鎴栬�呮帹閫佸埌鍏朵粬鍥芥爣骞冲彴 +- [X] 鏀寔鎺ㄦ祦閴存潈 +- [X] 鏀寔鎺ュ彛閴存潈 +- [X] 浜戠褰曞儚锛屾帹娴�/浠g悊/鍥芥爣瑙嗛缁濆彲浠ュ綍鍒跺湪浜戠鏈嶅姟鍣紝鏀寔棰勮鍜屼笅杞� -[//]: # (# docker蹇�熶綋楠�) -[//]: # (鐩墠浣滆�呯殑docker-compose鍥犱负鏃堕棿鏈夐檺缁存姢涓嶅強鏃讹紝杩欓噷鎻愪緵绗笁鏂规彁渚涚殑渚涘ぇ瀹朵娇鐢紝缁存姢涓嶆槗锛屽ぇ瀹惰寰楃粰杩欎綅灏忎紮浼寸偣涓猻tar銆� ) - -[//]: # (https://github.com/SaltFish001/wvp_pro_compose) - -[//]: # ([https://github.com/SaltFish001/wvp_pro_compose](https://github.com/SaltFish001/wvp_pro_compose)) - -[//]: # (杩欐槸浣滆�呯淮鎶ょ殑涓�涓暅鍍忥紝鍙兘瀛樺湪涓嶅強鏃剁殑闂銆�) - -[//]: # (```shell) - -[//]: # (docker pull 648540858/wvp_pro) - -[//]: # () -[//]: # (docker run --env WVP_IP="浣犵殑IP" -it -p 18080:18080 -p 30000-30500:30000-30500/udp -p 30000-30500:30000-30500/tcp -p 80:80 -p 5060:5060 -p 5060:5060/udp 648540858/wvp_pro) - -[//]: # (```) - -[//]: # (docker浣跨敤璇︽儏鏌ョ湅锛歔https://hub.docker.com/r/648540858/wvp_pro](https://hub.docker.com/r/648540858/wvp_pro)) - -# gitee鍚屾浠撳簱 -https://gitee.com/pan648540858/wvp-GB28181-pro.git - -# 閬囧埌闂 +# 閬囧埌闂濡備綍瑙e喅 鍥芥爣鏈�楹荤儲鐨勫湴鏂瑰湪浜庤澶囩殑鍏煎鎬э紝鎵�浠ラ渶瑕佸ぇ閲忕殑璁惧鏉ユ祴璇曪紝鐩墠浣滆�呮墜閲岀殑璁惧鏈夐檺锛屽啀鍔犱笂浣滆�呮按骞虫湁闄愶紝鎵�浠ラ亣鍒伴棶棰樺湪鎵�闅惧厤锛� 1. 鏌ョ湅wiki锛屼粩缁嗙殑闃呰鍙互甯綘閬垮厤鍑犱箮鎵�鏈夌殑闂 2. 鎼滅储issues锛岃繖閲屾湁澶ч儴鍒嗙殑绛旀 -3. 鍔燪Q缇わ紝杩欓噷鏈夊ぇ閲忕儹蹇冪殑灏忎紮浼达紝浣嗘槸鍓嶆彁鏂板笇鏈涗綘宸茬粡浠旂粏闃呰浜唚iki鍜屾悳绱簡issues銆� +3. 鍔燪Q缇わ紙901799015锛夛紝杩欓噷鏈夊ぇ閲忕儹蹇冪殑灏忎紮浼达紝浣嗘槸鍓嶆彁鏂板笇鏈涗綘宸茬粡浠旂粏闃呰浜唚iki鍜屾悳绱簡issues銆� 4. 浣犲彲浠ヨ浣滆�呬负浣犺В绛旓紝浣嗘槸鎴戜笉鏄厤璐圭殑銆� 5. 浣犲彲浠ユ妸閬囧埌闂鐨勮澶囧瘎缁欐垜锛屽彲浠ユ洿瀹规槗鐨勫鐜伴棶棰樸�� - - -# 鍚堜綔 -鐩墠寰堝鎵撶潃鍚堜綔鐨勫箤瀛愭潵绉佽亰鐨勶紝鍏跺疄澶у澶у彲涓嶅繀锛岀洰鍓嶄綔鑰呮病鏈夌簿鍔涳紝浣犳湁闂鍙互浠樿垂鎵炬垜瑙g瓟锛屼篃鍙互鎻怭R -锛屽鏋滃浠g爜鏈夊缓璁彲浠ユ彁ISSUE锛涗篃鍙互鍔犵兢涓�璧疯亰鑱娿�傛垜浠杩庢墍鏈夋湁鍏磋叮鍙備笌鍒伴」鐩腑鏉ョ殑浜恒�� - - # 浣跨敤甯姪 QQ缇�: 901799015, ZLM浣跨敤鏂囨。[https://github.com/ZLMediaKit/ZLMediaKit](https://github.com/ZLMediaKit/ZLMediaKit) @@ -156,6 +114,7 @@ # 鎺堟潈鍗忚 鏈」鐩嚜鏈変唬鐮佷娇鐢ㄥ鏉剧殑MIT鍗忚锛屽湪淇濈暀鐗堟潈淇℃伅鐨勬儏鍐典笅鍙互鑷敱搴旂敤浜庡悇鑷晢鐢ㄣ�侀潪鍟嗕笟鐨勯」鐩�� 浣嗘槸鏈」鐩篃闆剁鐨勪娇鐢ㄤ簡涓�浜涘叾浠栫殑寮�婧愪唬鐮侊紝鍦ㄥ晢鐢ㄧ殑鎯呭喌涓嬭鑷鏇夸唬鎴栧墧闄わ紱 鐢变簬浣跨敤鏈」鐩�屼骇鐢熺殑鍟嗕笟绾犵悍鎴栦镜鏉冭涓轰竴姒備笌鏈」鐩強寮�鍙戣�呮棤鍏筹紝璇疯嚜琛屾壙鎷呮硶寰嬮闄┿�� 鍦ㄤ娇鐢ㄦ湰椤圭洰浠g爜鏃讹紝涔熷簲璇ュ湪鎺堟潈鍗忚涓悓鏃惰〃鏄庢湰椤圭洰渚濊禆鐨勭涓夋柟搴撶殑鍗忚 + # 鑷磋阿 鎰熻阿浣滆�匸澶忔](https://github.com/xia-chu) 鎻愪緵杩欎箞妫掔殑寮�婧愭祦濯掍綋鏈嶅姟妗嗘灦,骞跺湪寮�鍙戣繃绋嬩腑缁欎簣鏀寔涓庡府鍔┿�� 鎰熻阿浣滆�匸dexter langhuihui](https://github.com/langhuihui) 寮�婧愯繖涔堝ソ鐢ㄧ殑WEB鎾斁鍣ㄣ�� diff --git a/doc/_media/2.png b/doc/_media/2.png new file mode 100644 index 0000000..dd982e1 --- /dev/null +++ b/doc/_media/2.png Binary files differ diff --git a/doc/_media/3-1.png b/doc/_media/3-1.png new file mode 100644 index 0000000..a52620f --- /dev/null +++ b/doc/_media/3-1.png Binary files differ diff --git a/doc/_media/3-2.png b/doc/_media/3-2.png new file mode 100644 index 0000000..bef780e --- /dev/null +++ b/doc/_media/3-2.png Binary files differ diff --git a/doc/_media/3-3.png b/doc/_media/3-3.png new file mode 100644 index 0000000..3943a52 --- /dev/null +++ b/doc/_media/3-3.png Binary files differ diff --git a/doc/_media/3.png b/doc/_media/3.png new file mode 100644 index 0000000..913d294 --- /dev/null +++ b/doc/_media/3.png Binary files differ diff --git a/doc/_media/index.png b/doc/_media/index.png new file mode 100644 index 0000000..15200e6 --- /dev/null +++ b/doc/_media/index.png Binary files differ diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java index d9b9cc5..9d2890e 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java @@ -70,7 +70,7 @@ stream ="*"; } String key = VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId() + "_" + deviceId + "_" + channelId + "_" + callId+ "_" + stream; - List<Object> scanResult = RedisUtil.scan(key); + List<Object> scanResult = RedisUtil.scan(key, 1); if (scanResult.size() == 0) { return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java index 8cf5293..393fbf1 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java @@ -75,7 +75,7 @@ @Override public void resetAllSN() { String scanKey = VideoManagerConstants.SIP_SN_PREFIX + userSetting.getServerId() + "_*"; - List<Object> keys = RedisUtil.scan(scanKey); + List<Object> keys = RedisUtil.scan(scanKey, null); for (Object o : keys) { String key = (String) o; RedisUtil.set(key, 1); @@ -129,7 +129,7 @@ } @Override public StreamInfo queryPlayByStreamId(String streamId) { - List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_%s_*", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(), streamId)); + List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_%s_*", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(), streamId), 1); if (playLeys == null || playLeys.size() == 0) { return null; } @@ -141,7 +141,7 @@ List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_*_%s_%s", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(), deviceId, - channelId)); + channelId), 1); if (playLeys == null || playLeys.size() == 0) { return null; } @@ -278,7 +278,7 @@ stream, callId ); - List<Object> streamInfoScan = RedisUtil.scan(key); + List<Object> streamInfoScan = RedisUtil.scan(key, 1); if (streamInfoScan.size() > 0) { return (StreamInfo) RedisUtil.get((String) streamInfoScan.get(0)); }else { @@ -310,7 +310,7 @@ stream, callId ); - List<Object> streamInfoScan = RedisUtil.scan(key); + List<Object> streamInfoScan = RedisUtil.scan(key, 1); return (String) streamInfoScan.get(0); } @@ -399,7 +399,7 @@ + channelId + "_" + streamId + "_" + callId; - List<Object> scan = RedisUtil.scan(key); + List<Object> scan = RedisUtil.scan(key, 1); if (scan.size() > 0) { return (SendRtpItem)RedisUtil.get((String)scan.get(0)); }else { @@ -521,7 +521,7 @@ String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX + userSetting.getServerId() + "_*_*_" + channelId + "*_" + "*_"; - List<Object> RtpStreams = RedisUtil.scan(key); + List<Object> RtpStreams = RedisUtil.scan(key, 1); if (RtpStreams.size() > 0) { return true; } else { @@ -613,7 +613,7 @@ stream, callId ); - List<Object> streamInfoScan = RedisUtil.scan(key); + List<Object> streamInfoScan = RedisUtil.scan(key, 1); if (streamInfoScan.size() > 0) { return (StreamInfo) RedisUtil.get((String) streamInfoScan.get(0)); }else { @@ -732,7 +732,7 @@ String scanKey = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_*_" + app + "_" + streamId + "_" + mediaServerId; OnStreamChangedHookParam result = null; - List<Object> keys = RedisUtil.scan(scanKey); + List<Object> keys = RedisUtil.scan(scanKey, 1); if (keys.size() > 0) { String key = (String) keys.get(0); result = (OnStreamChangedHookParam)RedisUtil.get(key); diff --git a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java index 3b4bec4..c5be52c 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java @@ -1,13 +1,12 @@ package com.genersoft.iot.vmp.utils.redis; -import java.util.*; -import java.util.concurrent.TimeUnit; - import com.alibaba.fastjson2.JSONObject; import com.genersoft.iot.vmp.utils.SpringBeanFactory; -import gov.nist.javax.sip.stack.UDPMessageChannel; import org.springframework.data.redis.core.*; import org.springframework.util.CollectionUtils; + +import java.util.*; +import java.util.concurrent.TimeUnit; /** * Redis宸ュ叿绫� @@ -865,12 +864,16 @@ * @param query 鏌ヨ鍙傛暟 * @return */ - public static List<Object> scan(String query) { + public static List<Object> scan(String query, Integer count) { if (redisTemplate == null) { redisTemplate = SpringBeanFactory.getBean("redisTemplate"); } Set<String> resultKeys = (Set<String>) redisTemplate.execute((RedisCallback<Set<String>>) connection -> { - ScanOptions scanOptions = ScanOptions.scanOptions().match("*" + query + "*").count(1000).build(); + ScanOptions.ScanOptionsBuilder match = ScanOptions.scanOptions().match("*" + query + "*"); + if (count != null) { + match.count(count); + } + ScanOptions scanOptions = match.build(); Cursor<byte[]> scan = connection.scan(scanOptions); Set<String> keys = new HashSet<>(); while (scan.hasNext()) { @@ -883,6 +886,15 @@ return new ArrayList<>(resultKeys); } + /** + * 妯$硦鏌ヨ + * @param query 鏌ヨ鍙傛暟 + * @return + */ + public static List<Object> scan(String query) { + return scan(query, null); + } + // ============================== 娑堟伅鍙戦�佷笌璁㈤槄 ============================== public static void convertAndSend(String channel, JSONObject msg) { if (redisTemplate == null) { -- Gitblit v1.8.0