新增聊天功能
This commit is contained in:
+30
-7
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user