Skip to content

Commit d24f9c3

Browse files
committed
fix push error
1 parent 7676900 commit d24f9c3

File tree

12 files changed

+370
-348
lines changed

12 files changed

+370
-348
lines changed

client/client/client.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -194,18 +194,13 @@ func addFriend(c *candy.CandyClient, reader *bufio.Reader) {
194194
data, _, _ = reader.ReadLine()
195195
msg := string(data)
196196

197-
success, err := c.AddFriend(id, true, msg)
197+
confirm, err := c.AddFriend(id, true, msg)
198198
if err != nil {
199199
log.Errorf("addFriend error:%v", err)
200200
return
201201
}
202202

203-
if !success {
204-
log.Debugf("addFriend failure, userID:%v", userID)
205-
return
206-
}
207-
208-
log.Debugf("addFriend success, userID:%v", userID)
203+
log.Debugf("addFriend confirm:%v, userID:%v", confirm, userID)
209204
fmt.Println("==============================================")
210205
}
211206

gate/server.go

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ func (g *Gate) SendMessage(ctx context.Context, req *meta.GateSendMessageRequest
286286

287287
//防止乱写
288288
req.Msg.From = s.getID()
289+
req.Msg.Method = meta.Method_NONE
289290

290291
if err = g.store.newMessage(req.Msg); err != nil {
291292
return &meta.GateSendMessageResponse{Header: &meta.ResponseHeader{Code: -1, Msg: err.Error()}}, nil
@@ -301,9 +302,11 @@ func (g *Gate) Ready(msg *meta.Message, stream meta.Gate_ReadyServer) error {
301302
return errors.Trace(err)
302303
}
303304

304-
s.addStream(stream)
305-
306-
return nil
305+
for {
306+
m := <-s.push
307+
log.Debugf("recv push request m:%v", m)
308+
stream.Send(m)
309+
}
307310
}
308311

309312
// Heartbeat nil.
@@ -334,19 +337,9 @@ func (g *Gate) Notice(ctx context.Context, req *meta.GateNoticeRequest) (*meta.G
334337
log.Debugf("User:%d offline", id.User)
335338
continue
336339
}
337-
338-
client := s.getStream()
339-
if client == nil {
340-
log.Errorf("User:%d client strem is nil", id.User)
341-
continue
342-
}
343-
344340
req.Msg.Before = id.Before
345-
346-
if err := client.Send(req.Msg); err != nil {
347-
log.Errorf("client Send msg:%v err:%v", req.Msg, err)
348-
continue
349-
}
341+
log.Debugf("will push user:%d, msg:%v", id.User, req.Msg)
342+
s.push <- req.Msg
350343
}
351344

352345
log.Debugf("end PushID:%v msg:%v ok", req.ID, req.Msg)

gate/session.go

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,16 @@ const (
1313
)
1414

1515
type session struct {
16-
id int64
17-
state int
18-
last int64
19-
addr string
20-
stream meta.Gate_ReadyServer
16+
id int64
17+
state int
18+
last int64
19+
addr string
20+
push chan *meta.Message
2121
}
2222

2323
func newSession(addr string) *session {
2424
log.Debugf("addr:%s", addr)
25-
return &session{addr: addr}
26-
}
27-
28-
func (s *session) addStream(stream meta.Gate_ReadyServer) {
29-
s.stream = stream
30-
}
31-
32-
func (s *session) getStream() meta.Gate_ReadyServer {
33-
if s.stream != nil {
34-
return s.stream
35-
}
36-
return nil
25+
return &session{addr: addr, push: make(chan *meta.Message)}
3726
}
3827

3928
func (s *session) online(id int64) {

meta/common.pb.go

Lines changed: 65 additions & 57 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

meta/common.proto

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,22 @@ enum FriendRelation {
2727
}
2828

2929
enum Method {
30+
31+
// 客户端发送上来的消息
32+
NONE = 0;
3033
// 有人请求添加好友
31-
FRIEND_ADD = 0;
34+
FRIEND_ADD = 1;
3235
// 添加好友成功
33-
FRIEND_CONFIRM = 1;
36+
FRIEND_CONFIRM = 2;
3437
// 被删除好友
35-
FRIEND_DEL = 2;
38+
FRIEND_DEL = 3;
3639

3740
// 申请加群
38-
GROUP_ADD = 3;
41+
GROUP_ADD = 4;
3942
// 退出群组
40-
GROUP_EXIT = 4;
43+
GROUP_EXIT = 5;
4144
// 邀请指定用户入群
42-
GROUP_INVITE= 5;
45+
GROUP_INVITE= 6;
4346
}
4447

4548
// PushID 用户的上一条消息ID,用户ID

0 commit comments

Comments
 (0)