From c46f34569706d3e3032026040d00e292eb2c17e6 Mon Sep 17 00:00:00 2001 From: fuxiao <576101059@qq.com> Date: Fri, 1 Nov 2024 16:37:33 +0800 Subject: [PATCH] fixed bug of the actor's Deliver method --- cluster/node/actor.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/cluster/node/actor.go b/cluster/node/actor.go index 49ff50e..b8bfbfe 100644 --- a/cluster/node/actor.go +++ b/cluster/node/actor.go @@ -117,20 +117,34 @@ func (a *Actor) Next(ctx Context) { } // Deliver 投递消息到当前Actor中进行处理 -func (a *Actor) Deliver(uid int64, message *cluster.Message) { +func (a *Actor) Deliver(uid int64, message *cluster.Message) error { + buf, err := a.scheduler.node.proxy.PackBuffer(message.Data) + if err != nil { + return err + } + req := a.scheduler.node.reqPool.Get().(*request) req.nid = a.scheduler.node.opts.id req.uid = uid req.message.Seq = message.Seq req.message.Route = message.Route - req.message.Data = message.Data + req.message.Data = buf a.Next(req) + + return nil } // Push 推送消息到本地Node队列上进行处理 -func (a *Actor) Push(uid int64, message *cluster.Message) { - a.scheduler.node.router.deliver("", a.scheduler.node.opts.id, a.PID(), 0, uid, message.Seq, message.Route, message.Data) +func (a *Actor) Push(uid int64, message *cluster.Message) error { + buf, err := a.scheduler.node.proxy.PackBuffer(message.Data) + if err != nil { + return err + } + + a.scheduler.node.router.deliver("", a.scheduler.node.opts.id, a.PID(), 0, uid, message.Seq, message.Route, buf) + + return nil } // Destroy 销毁Actor