mirror of
https://github.com/cadmium-im/zirconium-go.git
synced 2024-11-23 10:52:24 +00:00
Fix mistake with generating new message ID instead of reusing existing ID
This commit is contained in:
parent
ff10a18f3b
commit
7e534680c7
@ -1,7 +1,5 @@
|
||||
package models
|
||||
|
||||
import "github.com/google/uuid"
|
||||
|
||||
// BaseMessage is a basic message model, basis of the whole protocol. It is used for a very easy protocol extension process.
|
||||
type BaseMessage struct {
|
||||
ID string `json:"id"`
|
||||
@ -13,11 +11,9 @@ type BaseMessage struct {
|
||||
Payload map[string]interface{} `json:"payload"`
|
||||
}
|
||||
|
||||
func NewBaseMessage(messageType string, from string, to string, ok bool, payload map[string]interface{}) BaseMessage {
|
||||
uuid, _ := uuid.NewRandom()
|
||||
uuidStr := uuid.String()
|
||||
func NewBaseMessage(id, messageType, from, to string, ok bool, payload map[string]interface{}) BaseMessage {
|
||||
return BaseMessage{
|
||||
ID: uuidStr,
|
||||
ID: id,
|
||||
MessageType: messageType,
|
||||
From: from,
|
||||
To: to,
|
||||
|
@ -53,7 +53,14 @@ func (r *Router) RouteMessage(origin *OriginC2S, message models.BaseMessage) {
|
||||
go v.HandlerFunc(origin, message)
|
||||
}
|
||||
} else {
|
||||
protocolError := models.ProtocolError{
|
||||
ErrCode: "unhandled",
|
||||
ErrText: "Server doesn't implement message type " + message.MessageType,
|
||||
ErrPayload: make(map[string]interface{}),
|
||||
}
|
||||
errMsg := models.NewBaseMessage(message.ID, message.MessageType, serverDomain, message.From, false, StructToMap(protocolError))
|
||||
logger.Infof("Drop message with type %s because server hasn't proper handlers", message.MessageType)
|
||||
origin.Send(errMsg)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -45,6 +45,6 @@ func PrepareMessageUnauthorized(msg models.BaseMessage) models.BaseMessage {
|
||||
ErrText: "Unauthorized access",
|
||||
ErrPayload: make(map[string]interface{}),
|
||||
}
|
||||
errMsg := models.NewBaseMessage(msg.MessageType, serverDomain, msg.From, false, StructToMap(protocolError))
|
||||
errMsg := models.NewBaseMessage(msg.ID, msg.MessageType, serverDomain, msg.From, false, StructToMap(protocolError))
|
||||
return errMsg
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user