mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
接入萤石摄像头后端优化
This commit is contained in:
@@ -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("摄像头操作停止").
|
||||
|
||||
17
config.yml
17
config.yml
@@ -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
|
||||
|
||||
42
deploy/docker-compose.yaml
Normal file
42
deploy/docker-compose.yaml
Normal 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"
|
||||
@@ -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
2280
deploy/redis/conf/redis.conf
Normal file
File diff suppressed because it is too large
Load Diff
58
fatal.log
58
fatal.log
@@ -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--------------------------------
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -26,6 +26,7 @@ type Device struct {
|
||||
Status int `json:"status"`
|
||||
Defence int `json:"defence"`
|
||||
DeviceVersion string `json:"deviceVersion"`
|
||||
NetAddress string `json:"netAddress"`
|
||||
}
|
||||
|
||||
// Channel 萤石摄像头通道数据结构
|
||||
|
||||
33
pkg/ys/ys.go
33
pkg/ys/ys.go
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
taskkill /pid 31288 -t -f
|
||||
taskkill /pid 19788 -t -f
|
||||
Reference in New Issue
Block a user