in protocol.go [130:148]
func ParsePublishCommand(b []byte) (cmd PublishCommand, err error) {
switch {
case bytes.HasPrefix(b, messagePrefix):
name, err := ParseBulkMessage(b[len(messagePrefix):])
if err != nil {
return cmd, err
}
return PublishCommand{IsPattern: false, ChannelOrPattern: name}, nil
case bytes.HasPrefix(b, pmessagePrefix):
name, err := ParseBulkMessage(b[len(pmessagePrefix):])
if err != nil {
return cmd, err
}
return PublishCommand{IsPattern: true, ChannelOrPattern: name}, nil
default:
return cmd, ErrWrongMessage
}
}