新增聊天功能

This commit is contained in:
2024-10-14 17:40:11 +08:00
parent 99ed84f534
commit 245875881c
13 changed files with 360 additions and 12 deletions
+30 -7
View File
@@ -10,8 +10,10 @@ import (
"net/http"
"os"
"path/filepath"
"time"
"work_cation/cfg"
"work_cation/global"
"work_cation/models"
"work_cation/repo"
)
@@ -36,19 +38,15 @@ func (s *serverService) Online() error {
if err := Zeroconf.Register(user); err != nil {
return err
}
// 启动服务
if err := s.StartListenServer(); err != nil {
return err
}
// 修改状态
s.Status = StatusOnline
return nil
}
func (s *serverService) StatusOffline() error {
if err := s.server.Close(); err != nil {
return err
}
//if err := s.server.Close(); err != nil {
// return err
//}
// 关闭服务发现
Zeroconf.Close()
// 修改状态
@@ -87,6 +85,31 @@ func (s *serverService) StartListenServer() error {
}
})
router.POST("/chat", func(c *gin.Context) {
uuid := c.GetHeader("User-ID")
user := repo.UserFollow.GetUser(global.DB, uuid)
if user.Ip != c.ClientIP() {
c.JSON(200, gin.H{"message": "对方未关注你"})
return
}
var msg = make(map[string]interface{})
if err := c.ShouldBind(&msg); err != nil {
c.JSON(200, gin.H{"message": "输入异常"})
return
}
message := &models.Message{
Cmd: "chat",
User: *user,
ChatMessage: models.ChatMessage{
User: user.Users,
Time: time.Now(),
Text: msg["text"].(string),
},
}
global.Send.SendChan <- message
c.JSON(200, gin.H{"message": "ok"})
})
srv := &http.Server{
Addr: cfg.T.ServerAddr,
Handler: router,