Prevent divide by zero if there are no hubs (#8763)
Этот коммит содержится в:
коммит произвёл
Derrick Anderson
родитель
823b22c403
Коммит
68340d4715
@@ -125,6 +125,10 @@ func (a *App) HubStop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) GetHubForUserId(userId string) *Hub {
|
func (a *App) GetHubForUserId(userId string) *Hub {
|
||||||
|
if len(a.Hubs) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
hash := fnv.New32a()
|
hash := fnv.New32a()
|
||||||
hash.Write([]byte(userId))
|
hash.Write([]byte(userId))
|
||||||
index := hash.Sum32() % uint32(len(a.Hubs))
|
index := hash.Sum32() % uint32(len(a.Hubs))
|
||||||
@@ -132,11 +136,17 @@ func (a *App) GetHubForUserId(userId string) *Hub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) HubRegister(webConn *WebConn) {
|
func (a *App) HubRegister(webConn *WebConn) {
|
||||||
a.GetHubForUserId(webConn.UserId).Register(webConn)
|
hub := a.GetHubForUserId(webConn.UserId)
|
||||||
|
if hub != nil {
|
||||||
|
hub.Register(webConn)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) HubUnregister(webConn *WebConn) {
|
func (a *App) HubUnregister(webConn *WebConn) {
|
||||||
a.GetHubForUserId(webConn.UserId).Unregister(webConn)
|
hub := a.GetHubForUserId(webConn.UserId)
|
||||||
|
if hub != nil {
|
||||||
|
hub.Unregister(webConn)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) Publish(message *model.WebSocketEvent) {
|
func (a *App) Publish(message *model.WebSocketEvent) {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user