1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package utils
-
- import (
- "github.com/zjxpcyc/websocket"
- "github.com/zjxpcyc/wechat/wx"
- )
-
- // ClientID 消息对象
- type ClientID websocket.ClientID
-
- // Message 发送消息
- type Message struct {
- From ClientID `json:"from"`
- To ClientID `json:"to"`
- Data interface{} `json:"data"`
- }
-
- // 消息类型
- const (
- WsMessage = "websocket"
- WechatMessage = "wechat"
- SMSMessage = "sms"
- )
-
- // SendWs 发送 websocket
- func SendWs(message Message) {
- msg := websocket.Message{
- From: websocket.ClientID(message.From),
- To: websocket.ClientID(message.To),
- Data: message.Data,
- }
-
- websocket.Send(msg)
- }
-
- func SendWechat(message Message) {
- dt := message.Data.(map[string]interface{})
- org := dt["orgid"].(string)
- tplID := dt["tplid"].(string)
- tplLink := dt["link"].(string)
- tplData := dt["data"].(map[string]string)
-
- var data map[string]wx.TplMessageData
- if tplData != nil {
- data = make(map[string]wx.TplMessageData)
- for k, v := range tplData {
- data[k] = wx.TplMessageData{Value: v}
- }
- }
-
- err := WxClientFor(org).SendTplMessage(message.To.ID, tplID, tplLink, data)
- if err != nil {
- LogError("推送微信消息失败: ", err)
- }
- }
-
- // SendMessage 发送消息
- func SendMessage(message Message, msgType string) {
- switch msgType {
- case WsMessage:
- SendWs(message)
- case WechatMessage:
-
- case SMSMessage:
- default:
- }
- }
-
- func MessageInit() {
- go websocket.Run()
- }
|