Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Rainbond
Commits
b1fce594
Unverified
Commit
b1fce594
authored
5 years ago
by
凡羊羊
Committed by
GitHub
5 years ago
Browse files
Options
Download
Plain Diff
Merge branch 'V5.1' into issue/650
parents
a639e422
69c7975d
main
Develop-V5.X
V5.1
V5.2
V5.3
V5.4
dependabot/npm_and_yarn/webcli/js/xterm-4.5.0
feat-containerd
feat-containerd1
feature-helmapp
feature-helmapp-2
feature-k8s
fixbug-560
master
mesh-start
servicemonitor
zqhtest-containerd
v5.8.1-release
v5.8.0-release
v5.7.1-release
v5.7.0-release
v5.6.0-release
v5.5.0-release
v5.5.0-dind
v5.4.1-release
v5.4.0-release
v5.3.3-release
v5.3.2-release
v5.3.1-release
v5.3.0-release
v5.2.2-release
v5.2.1-release
v5.2.0-release
v5.2.0-beta2
v5.2.0-beta1
v5.1.11-release
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
eventlog/exit/web/pusher.go
+31
-5
eventlog/exit/web/pusher.go
with
31 additions
and
5 deletions
+31
-5
eventlog/exit/web/pusher.go
+
31
-
5
View file @
b1fce594
...
...
@@ -46,6 +46,11 @@ func (w *WebsocketMessage) Encode() []byte {
return
reb
}
type
sendMessage
struct
{
messageType
int
data
[]
byte
}
//PubContext websocket context
type
PubContext
struct
{
ID
string
...
...
@@ -57,6 +62,7 @@ type PubContext struct {
chans
map
[
string
]
*
Chan
lock
sync
.
Mutex
close
chan
struct
{}
sendQueue
chan
sendMessage
}
//Chan handle
...
...
@@ -82,6 +88,7 @@ func NewPubContext(upgrader websocket.Upgrader,
httpRequest
:
httpRequest
,
server
:
s
,
chans
:
make
(
map
[
string
]
*
Chan
,
2
),
sendQueue
:
make
(
chan
sendMessage
,
1024
),
close
:
make
(
chan
struct
{}),
}
}
...
...
@@ -221,7 +228,7 @@ func (p *PubContext) readMessage(closed chan struct{}) {
continue
}
if
messageType
==
websocket
.
PingMessage
{
p
.
conn
.
Write
Message
(
websocket
.
PongMessage
,
[]
byte
{}
)
p
.
SendWebsocket
Message
(
websocket
.
PongMessage
)
continue
}
if
messageType
==
websocket
.
BinaryMessage
{
...
...
@@ -230,16 +237,34 @@ func (p *PubContext) readMessage(closed chan struct{}) {
}
}
func
(
p
*
PubContext
)
send
()
{
for
{
select
{
case
m
,
ok
:=
<-
p
.
sendQueue
:
if
!
ok
{
return
}
p
.
conn
.
SetWriteDeadline
(
time
.
Now
()
.
Add
(
10
*
time
.
Second
))
if
err
:=
p
.
conn
.
WriteMessage
(
m
.
messageType
,
m
.
data
);
err
!=
nil
{
p
.
server
.
log
.
Debugf
(
"write websocket message failure %s"
,
err
.
Error
())
}
case
<-
p
.
close
:
p
.
server
.
log
.
Debugf
(
"pub context send chan closed"
)
return
}
}
}
//SendMessage send websocket message
func
(
p
*
PubContext
)
SendMessage
(
message
WebsocketMessage
)
error
{
p
.
conn
.
SetWriteDeadline
(
time
.
Now
()
.
Add
(
10
*
time
.
Second
))
return
p
.
conn
.
WriteMessage
(
websocket
.
TextMessage
,
message
.
Encode
())
p
.
sendQueue
<-
sendMessage
{
messageType
:
websocket
.
TextMessage
,
data
:
message
.
Encode
()}
return
nil
}
//SendWebsocketMessage send websocket message
func
(
p
*
PubContext
)
SendWebsocketMessage
(
message
int
)
error
{
p
.
conn
.
SetWriteDeadline
(
time
.
Now
()
.
Add
(
10
*
time
.
Second
))
return
p
.
conn
.
WriteMessage
(
message
,
[]
byte
{})
p
.
sendQueue
<-
sendMessage
{
messageType
:
message
,
data
:
[]
byte
{}}
return
nil
}
func
(
p
*
PubContext
)
sendPing
(
closed
chan
struct
{})
{
...
...
@@ -263,6 +288,7 @@ func (p *PubContext) Start() {
p
.
server
.
log
.
Error
(
"Create web socket conn error."
,
err
.
Error
())
return
}
go
p
.
send
()
pingclosed
:=
make
(
chan
struct
{})
readclosed
:=
make
(
chan
struct
{})
go
p
.
sendPing
(
pingclosed
)
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
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
Menu
Projects
Groups
Snippets
Help