forked from ProjectWIND/ProjectWIND
72 lines
1.6 KiB
Go
72 lines
1.6 KiB
Go
![]() |
package protocol
|
||
|
|
||
|
import (
|
||
|
"ProjectWIND/typed"
|
||
|
"encoding/json"
|
||
|
"log"
|
||
|
)
|
||
|
|
||
|
func HandleMessage(msgJson []byte) {
|
||
|
var msg typed.MessageEventInfo
|
||
|
err := json.Unmarshal(msgJson, &msg)
|
||
|
if err != nil {
|
||
|
log.Println("[ERROR] unmarshalling message: ", err)
|
||
|
}
|
||
|
// 处理消息
|
||
|
log.Printf("[INFO] 收到消息:(来自:%v-%v:%v-%v)%v", msg.MessageType, msg.GroupId, msg.UserId, msg.Sender.Nickname, msg.RawMessage)
|
||
|
//一个简单的测试
|
||
|
if msg.RawMessage == "wind test" {
|
||
|
log.Println("[INFO] 收到wind test")
|
||
|
switch msg.MessageType {
|
||
|
case "group":
|
||
|
{
|
||
|
_, err := SendMessage(msg.MessageType, "wind test success", msg.GroupId, false)
|
||
|
if err != nil {
|
||
|
log.Println("[ERROR] send message: ", err)
|
||
|
}
|
||
|
break
|
||
|
}
|
||
|
case "private":
|
||
|
{
|
||
|
_, err := SendMessage(msg.MessageType, "wind test success", msg.UserId, false)
|
||
|
if err != nil {
|
||
|
log.Println("[ERROR] send message: ", err)
|
||
|
}
|
||
|
break
|
||
|
}
|
||
|
default:
|
||
|
{
|
||
|
log.Println("[ERROR] 不支持的消息类型")
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func HandleNotice(msgJson []byte) {
|
||
|
var notice typed.NoticeEventInfo
|
||
|
err := json.Unmarshal(msgJson, ¬ice)
|
||
|
if err != nil {
|
||
|
log.Println("[ERROR] unmarshalling notice: ", err)
|
||
|
}
|
||
|
// 处理通知
|
||
|
}
|
||
|
|
||
|
func HandleRequest(msgJson []byte) {
|
||
|
var request typed.NoticeEventInfo
|
||
|
err := json.Unmarshal(msgJson, &request)
|
||
|
if err != nil {
|
||
|
log.Println("[ERROR] unmarshalling request: ", err)
|
||
|
}
|
||
|
// 处理请求
|
||
|
}
|
||
|
|
||
|
func HandleMetaEvent(msgJson []byte) {
|
||
|
var meta typed.NoticeEventInfo
|
||
|
err := json.Unmarshal(msgJson, &meta)
|
||
|
if err != nil {
|
||
|
log.Println("[ERROR] unmarshalling meta: ", err)
|
||
|
}
|
||
|
// 处理元事件
|
||
|
}
|