fix changes from debug, edit groups return, add new connections func
This commit is contained in:
+11
-4
@@ -27,7 +27,7 @@ func ServeWsConnection(responseWriter http.ResponseWriter, request *http.Request
|
||||
var isAuthenticated bool
|
||||
var ignoreCache bool
|
||||
|
||||
defer closeConnection(&user, ignoreCache)
|
||||
defer func() { closeConnection(&user, ignoreCache) }()
|
||||
for {
|
||||
var userMessage map[string]any
|
||||
err = wsjson.Read(ctx, connection, &userMessage)
|
||||
@@ -71,8 +71,13 @@ func sendMessageCloseIfTimeout(user *User, message *map[string]any) {
|
||||
|
||||
func sendToAllMessageCloseIfTimeout(message *map[string]any) {
|
||||
mu.RLock()
|
||||
defer mu.RUnlock()
|
||||
users := make([]*User, 0, len(CacheUsers))
|
||||
for _, user := range CacheUsers {
|
||||
users = append(users, user)
|
||||
}
|
||||
mu.RUnlock()
|
||||
|
||||
for _, user := range users {
|
||||
sendMessageCloseIfTimeout(user, message)
|
||||
}
|
||||
}
|
||||
@@ -83,7 +88,7 @@ func WsSendToUser(from *User, to *User, message string) {
|
||||
"from": from.Id,
|
||||
"content": message,
|
||||
}
|
||||
sendMessageCloseIfTimeout(from, &msg)
|
||||
sendMessageCloseIfTimeout(to, &msg)
|
||||
}
|
||||
|
||||
func WsSendToGroup(group *Group, sender *User, message string) error {
|
||||
@@ -176,5 +181,7 @@ func closeConnection(user *User, ignoreCache bool) {
|
||||
if !ignoreCache {
|
||||
CacheDeleteUser(user.Id)
|
||||
}
|
||||
user.WsConn.CloseNow()
|
||||
if user.WsConn != nil {
|
||||
user.WsConn.CloseNow()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user