mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-13 01:02:27 +08:00
feat: 优化MixMessage采用指针传参,减少2次拷贝 (#394)
This commit is contained in:
@@ -27,10 +27,10 @@ type Server struct {
|
||||
|
||||
openID string
|
||||
|
||||
messageHandler func(message.MixMessage) *message.Reply
|
||||
messageHandler func(*message.MixMessage) *message.Reply
|
||||
|
||||
RequestRawXMLMsg []byte
|
||||
RequestMsg message.MixMessage
|
||||
RequestMsg *message.MixMessage
|
||||
ResponseRawXMLMsg []byte
|
||||
ResponseMsg interface{}
|
||||
|
||||
@@ -105,7 +105,7 @@ func (srv *Server) handleRequest() (reply *message.Reply, err error) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
mixMessage, success := msg.(message.MixMessage)
|
||||
mixMessage, success := msg.(*message.MixMessage)
|
||||
if !success {
|
||||
err = errors.New("消息类型转换失败")
|
||||
}
|
||||
@@ -160,14 +160,14 @@ func (srv *Server) getMessage() (interface{}, error) {
|
||||
return srv.parseRequestMessage(rawXMLMsgBytes)
|
||||
}
|
||||
|
||||
func (srv *Server) parseRequestMessage(rawXMLMsgBytes []byte) (msg message.MixMessage, err error) {
|
||||
msg = message.MixMessage{}
|
||||
err = xml.Unmarshal(rawXMLMsgBytes, &msg)
|
||||
func (srv *Server) parseRequestMessage(rawXMLMsgBytes []byte) (msg *message.MixMessage, err error) {
|
||||
msg = &message.MixMessage{}
|
||||
err = xml.Unmarshal(rawXMLMsgBytes, msg)
|
||||
return
|
||||
}
|
||||
|
||||
//SetMessageHandler 设置用户自定义的回调方法
|
||||
func (srv *Server) SetMessageHandler(handler func(message.MixMessage) *message.Reply) {
|
||||
func (srv *Server) SetMessageHandler(handler func(*message.MixMessage) *message.Reply) {
|
||||
srv.messageHandler = handler
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user