Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
eaaac088
Commit
eaaac088
authored
Dec 19, 2018
by
antirez
Browse files
RESP3: Pubsub messages in new push format if client is in RESP3 mode.
parent
bc75a94e
Changes
1
Show whitespace changes
Inline
Side-by-side
src/pubsub.c
View file @
eaaac088
...
...
@@ -37,7 +37,10 @@ int clientSubscriptionsCount(client *c);
/* Send a pubsub message of type "message" to the client. */
void
addReplyPubsubMessage
(
client
*
c
,
robj
*
channel
,
robj
*
msg
)
{
if
(
c
->
resp
==
2
)
addReply
(
c
,
shared
.
mbulkhdr
[
3
]);
else
addReplyPushLen
(
c
,
3
);
addReply
(
c
,
shared
.
messagebulk
);
addReplyBulk
(
c
,
channel
);
addReplyBulk
(
c
,
msg
);
...
...
@@ -47,7 +50,10 @@ void addReplyPubsubMessage(client *c, robj *channel, robj *msg) {
* with the "message" type delivered by addReplyPubsubMessage() is that
* this message format also includes the pattern that matched the message. */
void
addReplyPubsubPatMessage
(
client
*
c
,
robj
*
pat
,
robj
*
channel
,
robj
*
msg
)
{
if
(
c
->
resp
==
2
)
addReply
(
c
,
shared
.
mbulkhdr
[
4
]);
else
addReplyPushLen
(
c
,
4
);
addReply
(
c
,
shared
.
pmessagebulk
);
addReplyBulk
(
c
,
pat
);
addReplyBulk
(
c
,
channel
);
...
...
@@ -56,7 +62,10 @@ void addReplyPubsubPatMessage(client *c, robj *pat, robj *channel, robj *msg) {
/* Send the pubsub subscription notification to the client. */
void
addReplyPubsubSubscribed
(
client
*
c
,
robj
*
channel
)
{
if
(
c
->
resp
==
2
)
addReply
(
c
,
shared
.
mbulkhdr
[
3
]);
else
addReplyPushLen
(
c
,
3
);
addReply
(
c
,
shared
.
subscribebulk
);
addReplyBulk
(
c
,
channel
);
addReplyLongLong
(
c
,
clientSubscriptionsCount
(
c
));
...
...
@@ -67,7 +76,10 @@ void addReplyPubsubSubscribed(client *c, robj *channel) {
* unsubscribe command but there are no channels to unsubscribe from: we
* still send a notification. */
void
addReplyPubsubUnsubscribed
(
client
*
c
,
robj
*
channel
)
{
if
(
c
->
resp
==
2
)
addReply
(
c
,
shared
.
mbulkhdr
[
3
]);
else
addReplyPushLen
(
c
,
3
);
addReply
(
c
,
shared
.
unsubscribebulk
);
if
(
channel
)
addReplyBulk
(
c
,
channel
);
...
...
@@ -78,7 +90,10 @@ void addReplyPubsubUnsubscribed(client *c, robj *channel) {
/* Send the pubsub pattern subscription notification to the client. */
void
addReplyPubsubPatSubscribed
(
client
*
c
,
robj
*
pattern
)
{
if
(
c
->
resp
==
2
)
addReply
(
c
,
shared
.
mbulkhdr
[
3
]);
else
addReplyPushLen
(
c
,
3
);
addReply
(
c
,
shared
.
psubscribebulk
);
addReplyBulk
(
c
,
pattern
);
addReplyLongLong
(
c
,
clientSubscriptionsCount
(
c
));
...
...
@@ -89,7 +104,10 @@ void addReplyPubsubPatSubscribed(client *c, robj *pattern) {
* punsubscribe command but there are no pattern to unsubscribe from: we
* still send a notification. */
void
addReplyPubsubPatUnsubscribed
(
client
*
c
,
robj
*
pattern
)
{
if
(
c
->
resp
==
2
)
addReply
(
c
,
shared
.
mbulkhdr
[
3
]);
else
addReplyPushLen
(
c
,
3
);
addReply
(
c
,
shared
.
punsubscribebulk
);
if
(
pattern
)
addReplyBulk
(
c
,
pattern
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment