-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathresponse.go
112 lines (94 loc) · 3.76 KB
/
response.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package go_websocket
import (
"encoding/json"
"github.com/gorilla/websocket"
)
// responseData 响应结构体
type responseData struct {
Code Code `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
Params interface{} `json:"params"` // 自定义参数
}
type MsgType int
const (
Text MsgType = 1
Json = iota + Text
Binary
)
// WriteMessage 返回给客户端的信息
func WriteMessage(conn *websocket.Conn, code Code, message string, data, params interface{}, msgType MsgType) error {
r := responseData{
Code: code,
Msg: message,
Params: params,
Data: data,
}
switch msgType {
case Text:
marshal, _ := json.Marshal(r)
return conn.WriteMessage(1, marshal)
case Binary:
marshal, _ := json.Marshal(r)
return conn.WriteMessage(2, marshal)
case Json:
return conn.WriteJSON(r)
}
return nil
}
// WriteJson 返回给客户端的信息
func WriteJson(conn *websocket.Conn, code Code, message string, data, params interface{}) error {
return WriteMessage(conn, code, message, data, params, Json)
}
// WriteSuccessJson 返回客户端连接成功
func WriteSuccessJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, Success, Success.Msg(), data, params)
}
// WriteFailedJson 返回客户端连接失败
func WriteFailedJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, Failed, Failed.Msg(), data, params)
}
// WriteClientFailedJson 返回客户端主动断连
func WriteClientFailedJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, ClientFailed, ClientFailed.Msg(), data, params)
}
// WriteClientNotExistJson 返回客户端不存在
func WriteClientNotExistJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, ClientNotExist, ClientNotExist.Msg(), data, params)
}
// WriteClientCloseSuccessJson 返回客户端关闭成功
func WriteClientCloseSuccessJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, ClientCloseSuccess, ClientCloseSuccess.Msg(), data, params)
}
// WriteClientCloseFailedJson 返回客户端关闭失败
func WriteClientCloseFailedJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, ClientCloseFailed, ClientCloseFailed.Msg(), data, params)
}
// WriteReadMsgErrJson 返回读取消息体失败
func WriteReadMsgErrJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, ReadMsgErr, ReadMsgErr.Msg(), data, params)
}
// WriteReadMsgSuccessJson 返回读取消息体成功
func WriteReadMsgSuccessJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, ReadMsgSuccess, ReadMsgSuccess.Msg(), data, params)
}
// WriteSendMsgErrJson 返回发送消息体失败
func WriteSendMsgErrJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, SendMsgErr, SendMsgErr.Msg(), data, params)
}
// WriteSendMsgSuccessJson 返回发送消息体成功
func WriteSendMsgSuccessJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, SendMsgSuccess, SendMsgSuccess.Msg(), data, params)
}
// WriteHeartbeatErrJson 返回心跳检测失败
func WriteHeartbeatErrJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, HeartbeatErr, HeartbeatErr.Msg(), data, params)
}
// WriteBindGroupSuccessJson 返回绑定群组成功
func WriteBindGroupSuccessJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, BindGroupSuccess, BindGroupSuccess.Msg(), data, params)
}
// WriteRequestParamErrJson 返回请求参数错误
func WriteRequestParamErrJson(conn *websocket.Conn, data, params interface{}) error {
return WriteJson(conn, RequestParamErr, RequestParamErr.Msg(), data, params)
}