websocket/message/message.go

44 lines
1004 B
Go

// Package message ...
//
// Description : 消息相关操作
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2021-03-28 5:15 下午
package message
import (
"encoding/json"
"github.com/pkg/errors"
"git.zhangdeman.cn/zhangdeman/websocket/context"
)
// Response 对当前连接的相关行为做出响应
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 5:17 下午 2021/3/28
func Response(wsCtx *context.WSContext, data map[string]interface{}) error {
byteData, _ := json.Marshal(data)
return wsCtx.Session.Write(byteData)
}
// Broadcast 消息广播
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 5:43 下午 2021/4/8
func Broadcast(message string, ctxList ...context.WSContext) map[string]error {
result := make(map[string]error)
for _, ctx := range ctxList {
if nil == ctx.Session {
result[ctx.ConnectionID] = errors.New("session is nil")
continue
}
result[ctx.ConnectionID] = ctx.Session.Write([]byte(message))
}
return result
}