对于用户发送消息的方面,首先我们应该修改一下之前的UserMessage结构体,如下:
type UserMessage struct {
Type string `json:"type"`
UserId int `json:"user_id"`
FirstTopic int `json:"first_topic"`
SecondTopic int `json:"second_topic"`
MsgType int `json:"msg_type"`
MsgContent string `json:"msg_content"`
}
这里加入了一个MsgType和一个MsgContent。用户发送消息的类型和具体的消息内容。
然后我们就可以通过Type是否为Message来判断是否是用户发送的消息。
case "message":
messageContent:=common.MessageContent{
FirstTopic: umsg.FirstTopic,
SecondTopic: umsg.SecondTopic,
MsgType: umsg.MsgType,
MsgContent: umsg.MsgContent,
UserId: umsg.UserId,
}
fds:=new(user.UserService).GetFdByGroup(umsg.FirstTopic,umsg.SecondTopic)
fmt.Println("fds===================",fds)
PushToAllObj:=new(push.PushToAllMessage)
PushToAllObj.Status=0;
PushToAllObj.Data=messageContent
PushToAllObj.Fds=fds
messageservice:=new(message.MessageService)
messageservice.Add(PushToAllObj)
messageservice.Update()
break
这里我们新建了一个MessagService,这个Service只是为了继承一下PushEventGenerator,从而对用户发送通知。
OK,至此所有的发送消息的功能与之前Swoole_chat的功能都一致了。