alpha
alex 2023-03-11 21:11:45 +01:00
parent b633c31ee8
commit 7898558357
1 changed files with 4 additions and 11 deletions

View File

@ -79,7 +79,6 @@ func RunHub() {
if len(receivedMessage.RecUser) == utils.LenWebSocketSession { if len(receivedMessage.RecUser) == utils.LenWebSocketSession {
gocnjhelper.LogDebug("type: user message") gocnjhelper.LogDebug("type: user message")
// TODO: check if the user is allowed to sent a message to target user. For example: privacy settings, friend relationship // TODO: check if the user is allowed to sent a message to target user. For example: privacy settings, friend relationship
// TODO: handle when client not connected to websocket. eg. Push Notification
SendMessageToClient(receivedMessage.RecUser, structs.SendSocketMessage{Cmd: receivedMessage.Cmd, Body: receivedMessage.Body}) SendMessageToClient(receivedMessage.RecUser, structs.SendSocketMessage{Cmd: receivedMessage.Cmd, Body: receivedMessage.Body})
} else if len(receivedMessage.RecRoom) == utils.LenRoomId { } else if len(receivedMessage.RecRoom) == utils.LenRoomId {
gocnjhelper.LogDebug("type: room message") gocnjhelper.LogDebug("type: room message")
@ -105,8 +104,6 @@ func RunHub() {
} }
for _, roomUser := range roomUsers { for _, roomUser := range roomUsers {
// TODO: handle when client not connected to websocket. eg. Push Notification
/*connToWs :=*/
SendMessageToClient(roomUser.UserId, structs.SendSocketMessage{ SendMessageToClient(roomUser.UserId, structs.SendSocketMessage{
Cmd: receivedMessage.Cmd, Cmd: receivedMessage.Cmd,
Body: receivedMessage.Body, Body: receivedMessage.Body,
@ -138,7 +135,7 @@ func isUserInRoom(userId string, roomUsers []dbstructs.RoomUsers) bool {
return false return false
} }
func SendMessageToClient(targetUserId string, msg structs.SendSocketMessage) (connectedToWebSocket bool) { func SendMessageToClient(targetUserId string, msg structs.SendSocketMessage) {
if isConnected, socketClients := socketclients.IsReceiverConnectedToThisServer(targetUserId); isConnected { if isConnected, socketClients := socketclients.IsReceiverConnectedToThisServer(targetUserId); isConnected {
// send message to target receiver which is connected to this server // send message to target receiver which is connected to this server
gocnjhelper.LogDebug("FORWARDING MESSAGE: receiver is connected to this server") gocnjhelper.LogDebug("FORWARDING MESSAGE: receiver is connected to this server")
@ -147,8 +144,6 @@ func SendMessageToClient(targetUserId string, msg structs.SendSocketMessage) (co
gocnjhelper.LogDebugf("send to %s", socketClient.UserId) gocnjhelper.LogDebugf("send to %s", socketClient.UserId)
socketClient.SendMessage(msg) socketClient.SendMessage(msg)
} }
return true
} else { // send message to target receiver which is connected to any other server } else { // send message to target receiver which is connected to any other server
gocnjhelper.LogDebug("FORWARDING MESSAGE: receiver connected to other server") gocnjhelper.LogDebug("FORWARDING MESSAGE: receiver connected to other server")
@ -158,11 +153,9 @@ func SendMessageToClient(targetUserId string, msg structs.SendSocketMessage) (co
if err != nil { if err != nil {
gocnjhelper.LogErrorf("Failed to publish client message, err: %s", err) gocnjhelper.LogErrorf("Failed to publish client message, err: %s", err)
} }
} else {
return true // TODO: handle when client not connected to websocket. eg. Push Notification
}
gocnjhelper.LogDebug("rec user not connected to any other websocket server") gocnjhelper.LogDebug("rec user not connected to any other websocket server")
} }
return false }
} }