add fetching message history

This commit is contained in:
2026-04-11 20:03:09 +02:00
parent 1c7d0a691d
commit 1c58954613
6 changed files with 323 additions and 37 deletions
+23 -9
View File
@@ -2,6 +2,7 @@ package main
import (
"context"
"encoding/json"
"errors"
"log"
"net/http"
@@ -54,6 +55,26 @@ func ServeWsConnection(responseWriter http.ResponseWriter, request *http.Request
}
}
func sendMessageStructCloseIfTimeout(user *User, message *Message) {
if user.WsConn == nil {
return
}
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
jsonMsg, err := json.Marshal(message)
if err != nil {
log.Printf("json marshal error: %v", err)
return
}
err = wsjson.Write(ctx, user.WsConn, jsonMsg)
if err != nil {
log.Printf("json write error: %v", err)
return
}
}
func sendMessageCloseIfTimeout(user *User, message *map[string]any) {
if user.WsConn == nil {
return
@@ -84,15 +105,8 @@ func sendToAllMessageCloseIfTimeout(message *map[string]any) {
}
}
func WsSendToUser(to *User, message *Message) {
var msg = map[string]any{
"type": WsMessageFrom.DirectMessage,
"id": message.Id,
"from": message.Sender,
"created": message.CreatedAt,
"content": message.Content,
}
sendMessageCloseIfTimeout(to, &msg)
func WsMessageSendToUser(to *User, message *Message) {
sendMessageStructCloseIfTimeout(to, message)
}
func WsSendToGroup(group *Group, sender *User, message string) error {