Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
G
go-cqhttp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
go-cqhttp
Commits
7d1ed257
Commit
7d1ed257
authored
Aug 22, 2020
by
F0ur
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(ws): fix eventConn panic when ws connect close
parent
b3c706cb
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
8 deletions
+11
-8
server/websocket.go
server/websocket.go
+11
-8
No files found.
server/websocket.go
View file @
7d1ed257
...
@@ -324,18 +324,21 @@ func (c *websocketConn) handleRequest(bot *coolq.CQBot, payload []byte) {
...
@@ -324,18 +324,21 @@ func (c *websocketConn) handleRequest(bot *coolq.CQBot, payload []byte) {
func
(
s
*
websocketServer
)
onBotPushEvent
(
m
coolq
.
MSG
)
{
func
(
s
*
websocketServer
)
onBotPushEvent
(
m
coolq
.
MSG
)
{
s
.
eventConnMutex
.
Lock
()
s
.
eventConnMutex
.
Lock
()
defer
s
.
eventConnMutex
.
Unlock
()
defer
s
.
eventConnMutex
.
Unlock
()
pos
:=
0
for
i
,
l
:=
0
,
len
(
s
.
eventConn
);
i
<
l
;
i
++
{
for
_
,
conn
:=
range
s
.
eventConn
{
conn
:=
s
.
eventConn
[
i
]
log
.
Debugf
(
"向WS客户端 %v 推送Event: %v"
,
conn
.
RemoteAddr
()
.
String
(),
m
.
ToJson
())
log
.
Debugf
(
"向WS客户端 %v 推送Event: %v"
,
conn
.
RemoteAddr
()
.
String
(),
m
.
ToJson
())
err
:=
conn
.
WriteMessage
(
websocket
.
TextMessage
,
[]
byte
(
m
.
ToJson
()))
if
err
:=
conn
.
WriteMessage
(
websocket
.
TextMessage
,
[]
byte
(
m
.
ToJson
()));
err
!=
nil
{
if
err
!=
nil
{
_
=
conn
.
Close
()
_
=
conn
.
Close
()
s
.
eventConn
=
append
(
s
.
eventConn
[
:
pos
],
s
.
eventConn
[
pos
+
1
:
]
...
)
next
:=
i
+
1
if
pos
>
0
{
if
next
>=
l
{
pos
++
next
=
l
-
1
}
}
s
.
eventConn
[
i
],
s
.
eventConn
[
next
]
=
s
.
eventConn
[
next
],
s
.
eventConn
[
i
]
s
.
eventConn
=
append
(
s
.
eventConn
[
:
next
],
s
.
eventConn
[
next
+
1
:
]
...
)
i
--
l
--
conn
=
nil
}
}
pos
++
}
}
}
}
...
...
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