Files
toutoukan/controllers/system/sendMsg.go

33 lines
851 B
Go
Raw Normal View History

package system
import (
"encoding/json"
"github.com/gin-gonic/gin"
"net/http"
"toutoukan/model/systemmodel"
"toutoukan/socket"
)
func SendMsg(c *gin.Context) {
var req systemmodel.MsgSend
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
}
// 1. 将Msg结构体序列化为JSON字符串
msgJson, err := json.Marshal(req.Msg)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": "消息序列化失败:" + err.Error()})
return
}
// 2. 将JSON字符串转换为[]byte传给SendToUser
err = socket.SendToUser(req.Username, msgJson)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "发送消息失败:" + err.Error()})
return
}
// 发送成功的响应
c.JSON(http.StatusOK, gin.H{"code": 200, "message": "消息发送成功"})
}