package process2
import (
“encoding/json”
“fmt”
“net”
)
type SmsProcess struct {
//…[暂时不需字段]
}
//写方法转发消息
func(this *SmsProcess)SendGroupMes(mes message.Message){
//遍历服务器的onlineUsers map[int]*UserProcess,
//将消息转发出去。
//取出mes的内容SmsMes
var smsMes message.SmsMes
err:=json.Unmarshal([]byte(mes.Data),&smsMes)
if err!=nil{
fmt.Println("json.Unmarshal err",err)
return
}
data,err:=json.Marshal(mes)
if err!=nil{
fmt.Println("json.Marshal err=",err)
return
}
for id,up:=range userMgr.onlineUsers{
//这里,还需要过滤到自己,即不要再发给自己
if id==smsMes.UserId{
continue
}
this.SendMesToEachOnlineUser(smsMes.Content,up.Conn)
}
}
func (this *SmsProcess)SendMesToEachOnlineUser(date[]byte,conn net.Conn){
//离线留言,创建一个Transfer实例,发送data
tf:=&utils.Transfer{
Conn:conn,
}
err:=tf.WritePkg(data)
if err!=nil{
fmt.Println(“转发消息失败err=”,err)
}
}