Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
evm-store
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanli
evm-store
Commits
c739dee8
Commit
c739dee8
authored
Jul 05, 2021
by
wanli
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
f778c0b8
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
112 additions
and
108 deletions
+112
-108
backend/controller/login_manager.py
backend/controller/login_manager.py
+1
-1
backend/controller/user_manager.py
backend/controller/user_manager.py
+6
-7
backend/fullstack/login/auth.py
backend/fullstack/login/auth.py
+2
-1
backend/model/annex.py
backend/model/annex.py
+1
-1
backend/model/app_logs.py
backend/model/app_logs.py
+1
-1
backend/model/app_users.py
backend/model/app_users.py
+1
-1
backend/model/apps.py
backend/model/apps.py
+1
-1
backend/model/build_logs.py
backend/model/build_logs.py
+1
-1
backend/model/device.py
backend/model/device.py
+0
-8
backend/model/dictionary.py
backend/model/dictionary.py
+1
-1
backend/model/download.py
backend/model/download.py
+1
-1
backend/model/login_logs.py
backend/model/login_logs.py
+1
-1
backend/model/monitor.py
backend/model/monitor.py
+7
-10
backend/model/user.py
backend/model/user.py
+1
-1
backend/start.py
backend/start.py
+2
-2
backend/view/monitor.py
backend/view/monitor.py
+68
-35
backend/view/user.py
backend/view/user.py
+2
-2
frontend/src/permission.js
frontend/src/permission.js
+4
-4
frontend/src/utils/eventBus.js
frontend/src/utils/eventBus.js
+9
-1
frontend/src/views/system/monitor.vue
frontend/src/views/system/monitor.vue
+2
-28
No files found.
backend/controller/login_manager.py
View file @
c739dee8
...
...
@@ -82,7 +82,7 @@ class LoginManager(object):
update_login_information
(
real_ip
,
result
.
id
)
# 返回token
token
=
Auth
.
encode_auth_token
(
result
.
id
,
result
.
username
)
# 生成 token
token
=
Auth
.
encode_auth_token
(
result
.
id
,
result
.
username
,
str
(
result
.
uuid
)
)
# 生成 token
# setattr(result, 'token', token)
return
{
'token'
:
token
,
'id'
:
result
.
id
,
'username'
:
result
.
username
},
ResponseCode
.
OK
...
...
backend/controller/user_manager.py
View file @
c739dee8
...
...
@@ -5,7 +5,6 @@ import logging
import
copy
from
datetime
import
datetime
from
pony.orm
import
*
from
flask
import
request
from
model
import
fullStackDB
from
model.user
import
User
from
utils
import
md5_salt
...
...
@@ -27,7 +26,7 @@ class UserManager(object):
return
False
return
True
def
add
(
self
,
data
):
def
add
(
self
,
uuid
,
data
):
'''
添加用户
'''
...
...
@@ -37,7 +36,7 @@ class UserManager(object):
if
isExists
:
return
False
,
"user already exists"
editor
=
User
.
get
(
id
=
request
.
current_user
.
get
(
"id"
)
)
editor
=
User
.
get
(
uuid
=
uuid
)
if
not
editor
:
return
False
,
"current user is not exists"
...
...
@@ -62,7 +61,7 @@ class UserManager(object):
删除用户
'''
with
db_session
:
editor
=
User
.
get
(
id
=
request
.
current_user
.
get
(
"id"
)
)
editor
=
User
.
get
(
uuid
=
uuid
)
if
not
editor
:
return
False
,
"current user is not exists"
...
...
@@ -84,7 +83,7 @@ class UserManager(object):
with
db_session
:
# 查询请求者是否存在
editor
=
User
.
get
(
id
=
request
.
current_user
.
get
(
"id"
)
)
editor
=
User
.
get
(
uuid
=
uuid
)
if
not
editor
:
return
False
,
"current user is not exists"
...
...
@@ -101,12 +100,12 @@ class UserManager(object):
else
:
return
None
,
"user does not exists"
def
get
(
self
):
def
get
(
self
,
user
):
'''
查询单用户
'''
result
=
User
.
get
(
id
=
request
.
current_user
.
get
(
"id"
)
,
is_delete
=
False
)
result
=
User
.
get
(
id
=
user
,
is_delete
=
False
)
if
result
:
temp
=
result
.
to_dict
(
with_collections
=
True
,
related_objects
=
True
,
only
=
[
"uuid"
,
"username"
,
"account"
,
"role"
,
"phone"
,
"email"
,
"gender"
,
"create_at"
,
"update_at"
])
temp
.
update
({
...
...
backend/fullstack/login/auth.py
View file @
c739dee8
...
...
@@ -33,7 +33,7 @@ class Auth(object):
return
inner
@
staticmethod
def
encode_auth_token
(
user_id
,
username
):
def
encode_auth_token
(
user_id
,
username
,
uuid
):
"""
生成认证Token
:param user_id: int
...
...
@@ -49,6 +49,7 @@ class Auth(object):
'sub'
:
user_id
,
# token所属者
'data'
:
{
# payload
'id'
:
user_id
,
'uuid'
:
uuid
,
'username'
:
username
}
}
...
...
backend/model/annex.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
,
LongStr
,
Json
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
LongStr
from
app
import
config
from
.
import
fullStackDB
...
...
backend/model/app_logs.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
,
Json
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Json
from
app
import
config
from
.
import
fullStackDB
...
...
backend/model/app_users.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
from
app
import
config
from
.
import
fullStackDB
...
...
backend/model/apps.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
,
LongStr
,
Json
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
from
app
import
config
from
.
import
fullStackDB
...
...
backend/model/build_logs.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
,
LongStr
,
Json
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Json
from
app
import
config
from
.
import
fullStackDB
...
...
backend/model/device.py
View file @
c739dee8
'''
Author: your name
Date: 2021-04-14 14:12:18
LastEditTime: 2021-07-01 18:24:18
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath:
\
evm-store
\b
ackend
\
model
\
device.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
...
...
backend/model/dictionary.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
from
app
import
config
from
.
import
fullStackDB
...
...
backend/model/download.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
from
app
import
config
from
.
import
fullStackDB
...
...
backend/model/login_logs.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
,
Json
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
from
app
import
config
from
.
import
fullStackDB
...
...
backend/model/monitor.py
View file @
c739dee8
'''
Author: your name
Date: 2021-04-14 14:12:18
LastEditTime: 2021-07-01 18:26:25
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath:
\
evm-store
\b
ackend
\
model
\
monitor.py
'''
#!/usr/bin/env python
# -*- coding: utf_8 -*-
...
...
@@ -14,9 +6,9 @@ import uuid
from
app.setting
import
config
from
datetime
import
datetime
from
sqlalchemy
import
create_engine
from
sqlalchemy
import
func
,
Column
,
Integer
,
String
,
Float
,
DateTime
,
Numeric
,
Boolean
from
sqlalchemy
import
func
,
Column
,
Integer
,
String
,
DateTime
,
Boolean
from
sqlalchemy.ext.declarative
import
declarative_base
from
sqlalchemy.orm
import
sessionmaker
,
class_mapper
,
object_mapper
from
sqlalchemy.orm
import
sessionmaker
,
class_mapper
engine
=
create_engine
(
'sqlite:///{}?check_same_thread=False'
.
format
(
config
.
get
(
"DATABASE"
)),
echo
=
False
)
...
...
@@ -137,6 +129,11 @@ class Image(Base):
def
to_dict
(
self
):
return
{
c
.
name
:
getattr
(
self
,
c
.
name
)
for
c
in
self
.
__table__
.
columns
}
class
User
(
Base
):
__tablename__
=
"{}"
.
format
(
config
[
'TABLE_PREFIX'
])
+
"user"
id
=
Column
(
Integer
,
primary_key
=
True
,
autoincrement
=
True
)
uuid
=
Column
(
String
(
64
),
default
=
uuid
.
uuid1
,
index
=
True
)
class
Device
(
Base
):
__tablename__
=
"{}"
.
format
(
config
[
'TABLE_PREFIX'
])
+
"device"
...
...
backend/model/user.py
View file @
c739dee8
...
...
@@ -3,7 +3,7 @@
import
uuid
from
datetime
import
datetime
,
date
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
,
Json
from
pony.orm
import
PrimaryKey
,
Required
,
Optional
,
Set
from
app
import
config
from
.
import
fullStackDB
...
...
backend/start.py
View file @
c739dee8
'''
Author: your name
Date: 2021-04-14 14:12:18
LastEditTime: 2021-07-0
1 15:37:43
LastEditTime: 2021-07-0
3 17:26:02
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath:
\
evm-store
\b
ackend
\
start.py
...
...
@@ -12,12 +12,12 @@ import sys
import
os
import
signal
import
json
from
typing
import
(
Any
,)
# import tornado.autoreload
from
tornado.wsgi
import
WSGIContainer
from
tornado.web
import
Application
,
RequestHandler
,
FallbackHandler
from
tornado.ioloop
import
IOLoop
from
tornado.autoreload
import
watch
from
fullstack.log
import
logger
from
view
import
app
from
view.monitor
import
DeviceMessageHandler
,
NotifyHandler
,
WatchHandler
from
app
import
config
...
...
backend/view/monitor.py
View file @
c739dee8
'''
Author: your name
Date: 2021-06-29 19:33:41
LastEditTime: 2021-07-0
3 09:33:58
LastEditTime: 2021-07-0
5 09:26:59
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath:
\
evm-store
\b
ackend
\v
iew
\
monitor.py
'''
import
tornado.ioloop
import
tornado.web
from
tornado
import
httputil
from
tornado.web
import
RequestHandler
,
StaticFileHandler
from
tornado.websocket
import
WebSocketHandler
,
WebSocketClosedError
import
json
...
...
@@ -17,9 +18,11 @@ import logging
import
pprint
import
traceback
import
jwt
from
typing
import
(
Any
,)
from
threading
import
Timer
from
datetime
import
datetime
,
timedelta
from
app
import
config
,
signalManager
from
app
import
config
from
model.monitor
import
session
,
Device
,
User
from
controller.monitor
import
insert_data
,
get_monitor_list
,
get_watch_list
logger
=
logging
.
getLogger
(
__name__
)
...
...
@@ -78,11 +81,11 @@ def pushmessage(func):
msg
,
binary
=
ret
try
:
if
isinstance
(
msg
,
WebsocketResponse
)
or
isinstance
(
msg
,
dict
):
self
.
write
_message
(
json
.
dumps
(
msg
),
binary
)
self
.
write
(
json
.
dumps
(
msg
),
binary
)
elif
isinstance
(
msg
,
str
)
or
isinstance
(
msg
,
str
):
self
.
write
_message
(
msg
,
binary
)
self
.
write
(
msg
,
binary
)
else
:
self
.
write
_message
(
repr
(
msg
),
binary
)
self
.
write
(
repr
(
msg
),
binary
)
except
WebSocketClosedError
as
e
:
logger
.
error
(
e
)
self
.
on_close
()
...
...
@@ -91,6 +94,7 @@ def pushmessage(func):
class
BaseWebsocket
(
WebSocketHandler
):
_clients
=
[]
handlers
=
{}
def
open
(
self
):
# 新加入一个连接后,设置一个接收消息时间戳
# 同时查询改用可以查看哪些设备
...
...
@@ -115,6 +119,7 @@ class BaseWebsocket(WebSocketHandler):
className
=
self
.
__class__
.
__name__
logger
.
warning
(
"websocket of
%
s is closed"
%
className
)
if
className
in
self
.
handlers
:
print
(
"122 ======>"
,
type
(
self
.
handlers
),
type
(
className
),
type
(
self
.
handlers
[
className
]))
self
.
handlers
[
className
]
.
remove
(
self
)
def
check_origin
(
self
,
origin
):
...
...
@@ -123,66 +128,96 @@ class BaseWebsocket(WebSocketHandler):
@
classmethod
def
broadcastMessage
(
cls
,
message
,
binary
=
False
):
className
=
cls
.
__name__
pprint
.
pprint
(
cls
.
handlers
)
message
=
json
.
dumps
(
message
)
if
not
message
.
get
(
"imei"
):
return
False
if
className
in
cls
.
handlers
:
for
handler
in
cls
.
handlers
[
className
]:
handler
.
send
(
message
,
binary
)
for
item
in
cls
.
_clients
:
if
message
.
get
(
"imei"
)
in
item
.
get
(
"devices"
,
[]):
item
.
get
(
"context"
)
.
send
(
json
.
dumps
(
message
),
binary
)
# print(id(item.get("context")))
# className = cls.__name__
# message = json.dumps(message)
# if className in cls.handlers:
# for handler in cls.handlers[className]:
# # 判断用户能否查看该设备
# handler.send(message, binary)
class
NotifyHandler
(
BaseWebsocket
):
"""
建立与web前端的通信连接,发送状态信息报文
"""
_timer
=
None
def
__init__
(
self
,
application
:
tornado
.
web
.
Application
,
request
:
httputil
.
HTTPServerRequest
,
**
kwargs
:
Any
)
->
None
:
super
()
.
__init__
(
application
,
request
,
**
kwargs
)
self
.
on_heartbeat
()
def
open
(
self
):
super
(
NotifyHandler
,
self
)
.
open
()
def
on_message
(
self
,
message
):
className
=
self
.
__class__
.
__name__
# 收到心跳包消息,更新接收数据时间
message
=
json
.
loads
(
message
)
try
:
# 判断消息类型
if
message
.
get
(
"type"
):
if
message
.
get
(
"type"
)
==
"auth"
:
# 获取token值,检验正确与否,获取uuid
payload
=
jwt
.
decode
(
message
.
get
(
"token"
),
config
[
'SECRET_KEY'
],
verify
=
True
,
algorithms
=
[
'HS256'
],
options
=
{
'require'
:
[
'exp'
,
'iss'
,
'sub'
,
'aud'
,
'iat'
,
'data'
]},
audience
=
"bytecode"
)
print
(
payload
)
result
=
signalManager
.
actionCheckUser
.
emit
(
message
.
get
(
"uuid"
))
# 获取token值,检验正确与否,获取uuid
payload
=
jwt
.
decode
(
message
.
get
(
"token"
),
config
[
'SECRET_KEY'
],
verify
=
True
,
algorithms
=
[
'HS256'
],
options
=
{
'require'
:
[
'exp'
,
'iss'
,
'sub'
,
'aud'
,
'iat'
,
'data'
]},
audience
=
"bytecode"
)
# 判断消息类型
# 认证包,认证不通过,则剔除该连接
# 查询该用户可查看设备
# 认证包,认证不通过,则剔除该连接
if
message
.
get
(
"type"
)
==
"auth"
:
if
not
message
.
get
(
"token"
):
self
.
write
(
json
.
dumps
({
"code"
:
400
,
"data"
:
None
,
"msg"
:
"token can not be null"
}))
return
self
.
_clients
.
append
({
'uuid'
:
''
,
'context'
:
self
,
'devices'
:
[],
'ts'
:
int
(
time
.
time
())
})
user
=
session
.
query
(
User
)
.
filter
(
User
.
id
==
payload
.
get
(
"data"
)
.
get
(
"id"
))
.
all
()
if
not
user
:
self
.
write_message
(
json
.
dumps
({
"code"
:
400
,
"data"
:
None
,
"msg"
:
"user not exists"
}))
# self.close()
return
return
result
# 查询该用户可查看设备
devices
=
session
.
query
(
Device
)
.
filter
(
Device
.
create_by
==
payload
.
get
(
"data"
)
.
get
(
"id"
))
.
all
()
if
len
(
devices
):
self
.
_clients
.
append
({
'uuid'
:
payload
.
get
(
"data"
)
.
get
(
"uuid"
),
'context'
:
self
,
'devices'
:
lambda
d
:
d
.
imei
,
'ts'
:
int
(
time
.
time
())
})
self
.
write_message
(
json
.
dumps
({
'code'
:
200
,
'data'
:
None
,
'msg'
:
'auth passed'
}))
else
:
# 没有设备,是否断开连接
self
.
write_message
(
json
.
dumps
({
'code'
:
400
,
'data'
:
None
,
'msg'
:
'no devices'
}))
# self.close()
elif
message
.
get
(
"type"
)
==
"heartbeat"
:
# 心跳包
# 收到心跳包消息,更新接收数据时间
for
c
in
self
.
_clients
:
if
c
.
get
(
"uuid"
)
==
message
.
get
(
"uuid"
):
if
c
.
get
(
"uuid"
)
==
payload
.
get
(
"data"
)
.
get
(
"uuid"
):
c
[
"ts"
]
=
int
(
time
.
time
())
self
.
write
(
json
.
dumps
({
'code'
:
200
,
'data'
:
None
,
'msg'
:
'update session timestamp success'
}))
self
.
write
_message
(
json
.
dumps
({
'code'
:
200
,
'data'
:
None
,
'msg'
:
'update session timestamp success'
}))
break
else
:
self
.
write
(
json
.
dumps
({
'code'
:
200
,
'data'
:
None
,
'msg'
:
'unkonw message packet, disconnect by server'
}))
self
.
write
_message
(
json
.
dumps
({
'code'
:
200
,
'data'
:
None
,
'msg'
:
'unkonw message packet, disconnect by server'
}))
self
.
handlers
[
className
]
.
remove
(
self
)
except
Exception
as
e
:
self
.
handlers
[
className
]
.
remove
(
self
)
logger
.
error
(
e
)
print
(
"hello,world"
,
message
)
logger
.
info
(
message
)
def
on_heartbeat
(
self
):
className
=
self
.
__class__
.
__name__
# 心跳定时器,固定间隔扫描连接列表,当连接超时,主动剔除该连接
self
.
_timer
=
Timer
(
5
,
self
.
on_heartbeat
)
for
i
in
range
(
len
(
self
.
_clients
)
-
1
,
-
1
,
-
1
):
if
int
(
time
.
time
())
-
self
.
_clients
[
i
]
.
get
(
"ts"
)
>
5
:
self
.
_clients
.
remove
(
self
.
_clients
[
i
])
if
self
.
handlers
.
get
(
className
,
None
):
self
.
handlers
[
className
]
.
remove
(
self
)
self
.
_timer
=
Timer
(
1
,
self
.
on_heartbeat
)
self
.
_timer
.
start
()
class
MainHandler
(
BaseHandler
):
...
...
@@ -231,9 +266,7 @@ class WatchHandler(BaseHandler):
def
post
(
self
):
data
=
tornado
.
escape
.
json_decode
(
self
.
request
.
body
)
print
(
"=====>"
,
data
,
type
(
data
))
self
.
write
(
json
.
dumps
({
'code'
:
100
,
'msg'
:
'success'
}))
self
.
write
(
json
.
dumps
({
'code'
:
100
,
'data'
:
data
,
'msg'
:
'success'
}))
class
DeviceMessageHandler
(
BaseHandler
):
def
get
(
self
):
...
...
backend/view/user.py
View file @
c739dee8
...
...
@@ -21,7 +21,7 @@ def add():
新增用户
'''
try
:
isSuccess
,
message
=
signalManager
.
actionAddUser
.
emit
(
request
.
schema_data
)
isSuccess
,
message
=
signalManager
.
actionAddUser
.
emit
(
request
.
current_user
.
get
(
"id"
),
request
.
schema_data
)
if
isSuccess
:
return
response_result
(
ResponseCode
.
OK
,
msg
=
message
)
else
:
...
...
@@ -58,7 +58,7 @@ def get():
查找单个用户
'''
try
:
result
,
message
=
signalManager
.
actionGetUser
.
emit
()
result
,
message
=
signalManager
.
actionGetUser
.
emit
(
request
.
current_user
.
get
(
"id"
)
)
if
result
:
return
response_result
(
ResponseCode
.
OK
,
data
=
result
,
msg
=
message
)
else
:
...
...
frontend/src/permission.js
View file @
c739dee8
import
router
from
"
.
/router
"
;
import
store
from
"
@/store
"
;
// get token from cookie
import
NProgress
from
"
nprogress
"
;
// progress bar
import
"
nprogress/nprogress.css
"
;
// progress bar style
import
router
from
"
@
/router
"
;
import
store
from
"
@/store
"
;
import
NProgress
from
"
nprogress
"
;
import
"
nprogress/nprogress.css
"
;
import
{
getPageTitle
}
from
"
@/utils/index
"
;
const
whiteList
=
[
"
/login
"
,
"
/register
"
];
...
...
frontend/src/utils/eventBus.js
View file @
c739dee8
/*
* @Author: your name
* @Date: 2021-07-01 15:02:16
* @LastEditTime: 2021-07-0
1 18:20:04
* @LastEditTime: 2021-07-0
3 19:50:11
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \evm-store\frontend\src\utils\eventBus.js
...
...
@@ -15,6 +15,7 @@
* @FilePath: \evm-store\frontend\src\utils\wsNotify.js
*/
import
Vue
from
"
vue
"
;
import
store
from
"
@/store
"
;
export
const
wsNotify
=
new
WebSocket
(
`ws://
${
window
.
location
.
hostname
}
:3000/ws/v1/notify`
...
...
@@ -24,9 +25,14 @@ window.wsNotify = wsNotify;
wsNotify
.
eventBus
=
new
Vue
();
let
timer
=
null
;
wsNotify
.
onopen
=
function
(
event
)
{
console
.
log
(
"
websocket is conneted!
"
,
event
);
wsNotify
.
eventBus
.
$emit
(
"
open
"
,
event
);
timer
=
setInterval
(
function
()
{
wsNotify
.
send
(
JSON
.
stringify
({
type
:
'
heartbeat
'
,
ts
:
Date
.
now
(),
token
:
store
.
getters
.
token
}))
},
1000
)
};
wsNotify
.
onmessage
=
function
(
event
)
{
...
...
@@ -37,9 +43,11 @@ wsNotify.onmessage = function (event) {
wsNotify
.
onerror
=
function
(
error
)
{
console
.
log
(
error
);
wsNotify
.
eventBus
.
$emit
(
"
error
"
,
error
);
if
(
timer
)
clearInterval
(
timer
);
};
wsNotify
.
onclose
=
function
(
event
)
{
console
.
log
(
"
websocket is colosed!
"
,
event
);
wsNotify
.
eventBus
.
$emit
(
"
close
"
,
event
);
if
(
timer
)
clearInterval
(
timer
);
};
frontend/src/views/system/monitor.vue
View file @
c739dee8
...
...
@@ -246,33 +246,8 @@ export default {
};
},
methods
:
{
initWebSocket
()
{
if
(
"
WebSocket
"
in
window
)
{
this
.
socket
=
new
WebSocket
(
`ws://
${
window
.
location
.
hostname
}
:3000/ws/v1/notify`
);
this
.
socket
.
onopen
=
()
=>
{
console
.
log
(
"
连接成功
"
);
this
.
sendMsg
();
};
this
.
socket
.
onmessage
=
(
evt
)
=>
{
var
message
=
evt
.
data
;
message
=
JSON
.
parse
(
message
);
console
.
log
(
message
);
this
.
handleMessage
(
message
);
};
this
.
socket
.
onclose
=
function
(
res
)
{
console
.
log
(
"
断开了连接
"
,
res
);
};
this
.
socket
.
onerror
=
function
(
err
)
{
console
.
log
(
err
);
};
}
else
{
console
.
log
(
"
浏览器不支持WebSocket
"
);
}
},
sendMsg
()
{
var
message
=
"
hello,world
"
;
let
message
=
JSON
.
stringify
({
type
:
"
auth
"
,
token
:
this
.
$store
.
getters
.
token
})
;
this
.
socket
.
send
(
message
);
},
handleMessage
(
msg
)
{
...
...
@@ -311,7 +286,7 @@ export default {
this
.
image
.
forEach
((
img
)
=>
{
uris
.
push
(
img
.
uri
)
});
msg
.
image
.
forEach
((
item
)
=>
{
msg
.
image
&&
msg
.
image
.
forEach
((
item
)
=>
{
if
(
!
uris
.
includes
(
item
.
uri
))
{
this
.
image
.
push
(
item
)
}
...
...
@@ -344,7 +319,6 @@ export default {
this
.
handleMessage
(
message
);
});
});
// this.initWebSocket();
},
};
</
script
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment