接入萤石摄像头后端优化

This commit is contained in:
XM-GO
2023-09-05 17:09:24 +08:00
parent 8934271438
commit 86397860c8
14 changed files with 2511 additions and 135 deletions

View File

@@ -42,7 +42,18 @@ func InitEzvizRouter(container *restful.Container) {
Returns(200, "OK", []ys.Channel{}).
Returns(404, "Not Found", nil))
ws.Route(ws.GET("/{deviceSerial}/start/ptz").To(func(request *restful.Request, response *restful.Response) {
ws.Route(ws.GET("/{deviceSerial}/channel/live").To(func(request *restful.Request, response *restful.Response) {
restfulx.NewReqCtx(request, response).WithLog("设备直播地址").Handle(s.GetDeviceLiveAddress)
}).
Doc("设备直播地址").
Param(ws.PathParameter("deviceSerial", "deviceSerial").DataType("string")).
Param(ws.QueryParameter("channelNo", "通道序号").Required(true).DataType("int")).
Metadata(restfulspec.KeyOpenAPITags, tags).
Writes(ys.Channel{}). // on the response
Returns(200, "OK", []ys.Channel{}).
Returns(404, "Not Found", nil))
ws.Route(ws.GET("/{deviceSerial}/ptz/start").To(func(request *restful.Request, response *restful.Response) {
restfulx.NewReqCtx(request, response).WithLog("摄像头操作").Handle(s.StartPtz)
}).
Doc("摄像头操作").
@@ -52,7 +63,7 @@ func InitEzvizRouter(container *restful.Container) {
Param(ws.QueryParameter("speed", "速度").Required(true).DataType("int")).
Metadata(restfulspec.KeyOpenAPITags, tags))
ws.Route(ws.GET("/{deviceSerial}/stop/ptz").To(func(request *restful.Request, response *restful.Response) {
ws.Route(ws.GET("/{deviceSerial}/ptz/stop").To(func(request *restful.Request, response *restful.Response) {
restfulx.NewReqCtx(request, response).WithLog("摄像头操作停止").Handle(s.StopPtz)
}).
Doc("摄像头操作停止").

View File

@@ -31,15 +31,16 @@ jwt:
queue:
enable: false
num: 3000
redis:
host: 101.35.247.125
password: pandax
host: 127.0.0.1
password: root
port: 6379
mysql:
host: 101.35.247.125:3306
host: 127.0.0.1:3306
username: root
password: 'pandax'
password: '!MyEMS1'
db-name: pandax_iot
config: charset=utf8&loc=Local&parseTime=true
# mini0
@@ -53,12 +54,12 @@ oss:
taos:
username: "root"
password: "taosdata"
host: "101.35.247.125:6041"
host: "127.0.0.1:6041"
database: "iot"
config: ""
mqtt:
broker: 101.35.247.125:1883
broker: 127.0.0.1:1883
qos: 1
username: pandax
password: pandax
@@ -90,8 +91,8 @@ gb28181:
sip: tcp:5060
# 萤石摄像头token
ys:
appKey: ""
secret: ""
appKey: "2cc6a5edcee046c1b8bc9a857d67a287"
secret: "9eb8f595dc02859c91a5d7d0593f8a07"
log:
# 日志等级, trace, debug, info, warn, error, fatal

View File

@@ -0,0 +1,42 @@
services:
redis:
image: redis:7.0.12
container_name: redis
restart: always
environment:
requirepass: pandax
volumes:
- "./redis/conf/redis.conf:/etc/redis/redis.conf"
- "./redis/data:/data"
- "./redis/logs:/logs"
command: ["redis-server","/etc/redis/redis.conf"]
ports:
- 6379:6379
tdengine:
image: tdengine/tdengine:3.0.4.2
container_name: tdengine-server
restart: always
ports:
- 6030:6030
- 6041:6041
emqx:
image: emqx/emqx:5.1.0
restart: always
container_name: emqx-server
ports:
- 1883:1883
- 8083:8083
- 8084:8084
- 8883:8883
- 18083:18083
mysql:
image: mysql:8.0.23
container_name: mysql-server
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: pandax_iot
volumes:
- ./mysql/data:/var/lib/mysql
ports:
- "3306:3306"

View File

@@ -1,93 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
labels:
app.kubernetes.io/name: mysql
app.kubernetes.io/version: 1.0.0
name: pandax-db
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/version: 1.0.0
name: mysql
namespace: pandax-db
spec:
ports:
- port: 3306
protocol: TCP
targetPort: mysql
selector:
app: mysql
app.kubernetes.io/version: 1.0.0
type: LoadBalancer
---
apiVersion: v1
kind: PersistentVolume
metadata:
labels:
app.kubernetes.io/version: 1.0.0
type: local
name: mysql-pv-volume
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 20Gi
hostPath:
path: /mnt/data
storageClassName: manual
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app.kubernetes.io/version: 1.0.0
name: mysql-pv-claim
namespace: pandax-db
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: manual
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/version: 1.0.0
name: mysql
namespace: pandax-db
spec:
selector:
matchLabels:
app: mysql
app.kubernetes.io/version: 1.0.0
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
app.kubernetes.io/version: 1.0.0
spec:
containers:
- env:
- name: MYSQL_ROOT_PASSWORD
value: pandax
image: mysql:8.0.23
name: mysql
ports:
- containerPort: 3306
name: mysql
protocol: TCP
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-persistent-storage
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim

2280
deploy/redis/conf/redis.conf Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -17,3 +17,61 @@ created by main.glob..func2
2023-09-02 12:19:16--------------------------------
2023-09-04 11:15:17--------------------------------
2023-09-05 08:33:55--------------------------------
2023-09-05 08:34:49--------------------------------
2023-09-05 08:35:41--------------------------------
panic: (*logrus.Entry) 0xc0005604d0
goroutine 1 [running]:
github.com/sirupsen/logrus.(*Entry).log(0xc0005602a0, 0x0, {0xc0003e41c0, 0x69})
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/entry.go:260 +0x4a7
github.com/sirupsen/logrus.(*Entry).Log(0xc0005602a0, 0x0, {0xc000725a80?, 0x1?, 0x1?})
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/entry.go:304 +0x4f
github.com/sirupsen/logrus.(*Entry).Logf(0xc0005602a0, 0x0, {0x1a02c73?, 0xc000725ae0?}, {0xc000725b70?, 0x10?, 0x16c1fa0?})
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/entry.go:349 +0x85
github.com/sirupsen/logrus.(*Logger).Logf(0xc000134800, 0x0, {0x1a02c73, 0x17}, {0xc000725b70, 0x1, 0x1})
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/logger.go:154 +0x85
github.com/sirupsen/logrus.(*Logger).Panicf(...)
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/logger.go:195
github.com/PandaXGO/PandaKit/starter.(*DbGorm).GormMysql(0xc000725cd0)
D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:48 +0x279
github.com/PandaXGO/PandaKit/starter.(*DbGorm).GormInit(0xc000705420?)
D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:28 +0x39
main.glob..func1(0x312cf80?, {0x19b20c5?, 0x0?, 0x0?})
D:/workspace/go/project/PandaX/PandaX/main.go:45 +0x2de
github.com/spf13/cobra.(*Command).execute(0x312cf80, {0xc000078240, 0x0, 0x0})
D:/workspace/go/pkg/mod/github.com/spf13/cobra@v1.5.0/command.go:861 +0x5e3
github.com/spf13/cobra.(*Command).ExecuteC(0x312cf80)
D:/workspace/go/pkg/mod/github.com/spf13/cobra@v1.5.0/command.go:990 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
D:/workspace/go/pkg/mod/github.com/spf13/cobra@v1.5.0/command.go:918
main.main()
D:/workspace/go/project/PandaX/PandaX/main.go:106 +0x25
2023-09-05 08:36:19--------------------------------
panic: (*logrus.Entry) 0xc0004ac930
goroutine 1 [running]:
github.com/sirupsen/logrus.(*Entry).log(0xc0004ac620, 0x0, {0xc0004a4a98, 0x11})
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/entry.go:260 +0x4a7
github.com/sirupsen/logrus.(*Entry).Log(0xc0004ac620, 0x0, {0xc000e37ca0?, 0xc0002e22f0?, 0x17c1660?})
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/entry.go:304 +0x4f
github.com/sirupsen/logrus.(*Logger).Log(0xc0001a8780, 0x0, {0xc000e37ca0, 0x1, 0x1})
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/logger.go:204 +0x65
github.com/sirupsen/logrus.(*Logger).Panic(...)
D:/workspace/go/pkg/mod/github.com/sirupsen/logrus@v1.9.0/logger.go:253
main.glob..func1(0x322cf80?, {0x1ab20c5?, 0x0?, 0x0?})
D:/workspace/go/project/PandaX/PandaX/main.go:49 +0x3e5
github.com/spf13/cobra.(*Command).execute(0x322cf80, {0xc000078240, 0x0, 0x0})
D:/workspace/go/pkg/mod/github.com/spf13/cobra@v1.5.0/command.go:861 +0x5e3
github.com/spf13/cobra.(*Command).ExecuteC(0x322cf80)
D:/workspace/go/pkg/mod/github.com/spf13/cobra@v1.5.0/command.go:990 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
D:/workspace/go/pkg/mod/github.com/spf13/cobra@v1.5.0/command.go:918
main.main()
D:/workspace/go/project/PandaX/PandaX/main.go:106 +0x25
2023-09-05 08:38:22--------------------------------

View File

@@ -398,3 +398,70 @@
2023-09-04 13:53:13.955 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/rule/chain/rule_a37571bb6c45378b57803793] [uid=1] : 获取规则引擎信息 ->6ms
2023-09-04 13:53:14.411 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/rule/chain/nodeLabels] [uid=1] [uname=panda] : 获取所有节点标签 ->0ms
2023-09-04 14:37:03.350 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/notice/list] [uid=1] : 获取通知分页列表 ->15ms
2023-09-04 17:16:19.804 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/rule/chain/rule_a37571bb6c45378b57803793] [uid=1] : 获取规则引擎信息 ->5ms
2023-09-04 17:16:20.246 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/rule/chain/nodeLabels] [uid=1] : 获取所有节点标签 ->0ms
2023-09-05 08:33:55.348 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true]
2023-09-05 08:33:55.586 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功
2023-09-05 08:33:55.663 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功
2023-09-05 08:33:55.663 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功
2023-09-05 08:33:55.751 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成
2023-09-05 08:33:55.751 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788
2023-09-05 08:33:55.752 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001
2023-09-05 08:33:56.077 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-05 08:33:56 [INFO] JobCore start success.
2023-09-05 08:34:49.694 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true]
2023-09-05 08:34:49.911 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功
2023-09-05 08:34:50.027 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功
2023-09-05 08:34:50.028 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功
2023-09-05 08:34:50.106 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成
2023-09-05 08:34:50.106 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788
2023-09-05 08:34:50.107 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001
2023-09-05 08:34:50.116 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax密码pandax,开始认证
2023-09-05 08:34:50.118 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.2 Connected
2023-09-05 08:34:50.445 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-05 08:34:50 [INFO] JobCore start success.
2023-09-05 08:35:41.724 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:123456@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true]
2023-09-05 08:35:41.729 [PANIC] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:48] : 连接mysql失败! [Error 1045 (28000): Access denied for user 'root'@'172.17.0.1' (using password: YES)]
2023-09-05 08:36:19.118 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true]
2023-09-05 08:36:19.126 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功
2023-09-05 08:36:19.128 [PANIC] [D:/workspace/go/project/PandaX/PandaX/main.go:49] : Redis连接错误
2023-09-05 08:38:22.313 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230901074047-e0e8e4bf2bed/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true]
2023-09-05 08:38:22.321 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:46] : mysql连接成功
2023-09-05 08:38:22.323 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:51] : Redis连接成功
2023-09-05 08:38:22.323 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:58] : Tdengine连接成功
2023-09-05 08:38:22.330 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:76] : 路由初始化完成
2023-09-05 08:38:22.331 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788
2023-09-05 08:38:22.331 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:37] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: :9001
2023-09-05 08:38:22.337 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:83] : 2023-09-05 08:38:22 [INFO] JobCore start success.
2023-09-05 08:38:22.338 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:153] : 账号pandax密码pandax,开始认证
2023-09-05 08:38:22.340 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/hook.go:96] : Client emqx@172.17.0.2 Connected
2023-09-05 08:40:00.182 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/system/user/login] : 登录 ->75ms
2023-09-05 08:40:00.210 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/user/auth] [uid=1] [uname=panda] : 认证信息 ->18ms
2023-09-05 08:40:40.269 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/api/list] [uid=1] : 获取api分页列表 ->7ms
2023-09-05 08:40:40.274 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->4ms
2023-09-05 08:40:46.981 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->8ms
2023-09-05 08:42:13.177 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [POST=/system/api] [uid=1] : 添加api信息 ->192ms
2023-09-05 08:42:13.212 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/api/list] : 获取api分页列表 ->11ms
2023-09-05 08:42:16.100 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/api/list] [uid=1] : 获取api分页列表 ->10ms
2023-09-05 08:42:22.698 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->5ms
2023-09-05 08:42:28.104 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->4ms
2023-09-05 08:43:10.821 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/system/api] : 添加api信息 ->289ms
2023-09-05 08:43:10.854 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/api/list] : 获取api分页列表 ->13ms
2023-09-05 08:43:13.405 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->4ms
2023-09-05 08:43:20.707 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->4ms
2023-09-05 08:45:31.160 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [POST=/system/api] [uid=1] : 添加api信息 ->226ms
2023-09-05 08:45:31.192 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/api/list] [uid=1] [uname=panda] : 获取api分页列表 ->9ms
2023-09-05 08:45:33.020 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms
2023-09-05 08:45:45.864 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->4ms
2023-09-05 08:46:14.505 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/system/api] [uid=1] [uname=panda] : 添加api信息 ->211ms
2023-09-05 08:46:14.539 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/api/list] : 获取api分页列表 ->13ms
2023-09-05 08:46:15.939 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->3ms
2023-09-05 08:46:21.258 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->4ms
2023-09-05 08:46:47.118 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/system/api] [uid=1] [uname=panda] : 添加api信息 ->538ms
2023-09-05 08:46:47.151 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/api/list] [uid=1] : 获取api分页列表 ->9ms
2023-09-05 08:46:49.710 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/role/list] : 获取角色分页列表 ->8ms
2023-09-05 08:46:49.715 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms
2023-09-05 08:46:52.153 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/api/all] [uid=1] [uname=panda] : 获取所有api ->4ms
2023-09-05 08:46:52.168 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/menu/roleMenuTreeSelect/1] : 获取角色菜单树 ->12ms
2023-09-05 08:46:52.170 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/role/1] : 获取角色信息 ->9ms
2023-09-05 08:46:52.295 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/api/getPolicyPathByRoleId] [uid=1] [uname=panda] : 获取角色拥有的api权限 ->6ms
2023-09-05 08:46:58.160 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [PUT=/system/role] [uid=1] [uname=panda] : 修改角色信息 ->1121ms
2023-09-05 08:46:58.189 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/role/list] : 获取角色分页列表 ->6ms

View File

@@ -26,6 +26,7 @@ func InitRouter() *transport.HttpServer {
// 是否允许跨域
if serverConfig.Cors {
container.Filter(middleware.Cors(container).Filter)
container.Filter(container.OPTIONSFilter)
}
// 流量限制
if serverConfig.Rate.Enable {

View File

@@ -37,10 +37,9 @@ func (s *HttpServer) Type() Type {
func (s *HttpServer) Start(ctx context.Context) error {
global.Log.Infof("HTTP Server listen: %s", s.Addr)
go func() {
s.srv.ListenAndServe()
/*if err := s.srv.ListenAndServe(); err != nil {
if err := s.srv.ListenAndServe(); err != nil {
global.Log.Errorf("error http serve: %s", err)
}*/
}
}()
return nil
}

View File

@@ -46,7 +46,7 @@ func (ys *Ys) GetDeviceLiveAddress(deviceSerial string, channelNo int) (live []L
params := make(map[string]interface{})
params["deviceSerial"] = deviceSerial
params["channelNo"] = channelNo
params["protocol"] = 1 //流播放协议1-ezopen、2-hls、3-rtmp、4-flv默认为1
params["protocol"] = 4 //流播放协议1-ezopen、2-hls、3-rtmp、4-flv默认为1
params["type"] = "1" //地址的类型1-预览2-本地录像回放3-云存储录像回放非必选默认为1回放仅支持rtmp、ezopen、flv协议
params["quality"] = 1 //视频清晰度1-高清主码流、2-流畅(子码流)
_, err = ys.authorizeRequset("POST", DEVICELIVEADDRESS, params, &live)

View File

@@ -26,6 +26,7 @@ type Device struct {
Status int `json:"status"`
Defence int `json:"defence"`
DeviceVersion string `json:"deviceVersion"`
NetAddress string `json:"netAddress"`
}
// Channel 萤石摄像头通道数据结构

View File

@@ -1,12 +1,10 @@
package ys
import (
"encoding/json"
"errors"
"fmt"
"io/ioutil"
"github.com/PandaXGO/PandaKit/httpclient"
"log"
"net/http"
"strings"
"time"
)
@@ -75,36 +73,19 @@ func (ys *Ys) requset(method, url string, params map[string]interface{}, data in
return
}
}()
var r http.Request
r.ParseForm()
ps := make([]string, 0)
for k, v := range params {
r.Form.Add(k, fmt.Sprint(v))
ps = append(ps, fmt.Sprintf("%s=%v", k, v))
}
req, err := http.NewRequest(method, url, strings.NewReader(r.Form.Encode()))
if err != nil {
return nil, err
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
client := &http.Client{Timeout: 60 * time.Second}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
buf, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var res = Status{
status = &Status{
Data: data,
}
err = json.Unmarshal(buf, &res)
err = httpclient.NewRequest(url).Timeout(60).PostParams(strings.Join(ps, "&")).BodyToObj(status)
if err != nil {
return nil, err
}
if res.Code != "200" {
return status, errors.New(res.Msg)
if status.Code != "200" {
return status, errors.New(status.Msg)
}
return status, nil
}

View File

@@ -9,10 +9,38 @@ func TestYs_GetDeviceList(t *testing.T) {
IsRAM: 0,
AccountID: "",
}
devices, total, err := ys.GetDeviceList(1, 10)
devices, total, err := ys.GetDeviceList(0, 10)
if err != nil {
t.Error(err)
}
t.Log(devices)
t.Log(total)
}
func TestYs_GetDeviceChannelList(t *testing.T) {
ys := &Ys{
AppKey: "",
Secret: "",
IsRAM: 0,
AccountID: "",
}
chans, err := ys.GetDeviceChannelList("BA1996108")
if err != nil {
t.Error(err)
}
t.Log(chans)
}
func TestYs_GetDeviceDeviceLiveAddress(t *testing.T) {
ys := &Ys{
AppKey: "2cc6a5edcee046c1b8bc9a857d67a287",
Secret: "9eb8f595dc02859c91a5d7d0593f8a07",
IsRAM: 0,
AccountID: "",
}
live, err := ys.GetDeviceLiveAddress("BA1996108", 1)
if err != nil {
t.Error(err)
}
t.Log(live)
}

View File

@@ -1 +1 @@
taskkill /pid 31288 -t -f
taskkill /pid 19788 -t -f