Client infinitely receive same messages from server when publish message with same Id #948

Closed
Xiaohongt opened this Issue Nov 9, 2012 · 5 comments

Comments

Projects
None yet
3 participants
Contributor

Xiaohongt commented Nov 9, 2012

Client receive same messages infinite times when publish message with same Id, we can use Redis tp repro, publish same message to same channel from redis_cli:

repro steps:
use SignalR Redis for web app
e.g.
GlobalHost.DependencyResolver.UseRedis(server, port, password, new string[] { "TestRedis" });

in web app, MyHub class and method getMessage

request page and connect to MyHub

on redis_cli, publish below message to the same channel of web app using:
publish TestRedis "{"Id":403,"Messages":[{"Source":"b1991ef2-0bc0-415b-a2ac-d7cd3c9b85b3","Key":"MyHub","Value":"{\"Hub\":\"MyHub\",\"Method\":\"foo2\",\"Args\":[\"From getMessage: \\"aaabb\\" b1991ef2-0bc0-415b-a2ac-d7cd3c9b85b3\"],\"State\":null}","CommandId":null,"WaitForAck":false,"IsAck":false,"Filter":"","IsCommand":false}]}"

on redis_cli, publish again the same message to TestRedis

Results:
on page, you can see client receive the same messages infinite times from server

David, I will show you the repro on machine

Owner

davidfowl commented Nov 9, 2012

Not a real scenario.

davidfowl was assigned Nov 15, 2012

nbtr commented Nov 29, 2012

I just ran into this. We already have our web nodes connected with zeromq, so I created a backplane to utilize that. Because there is no central repository like sql or redis it's possible that an id can get duped. I don't want to centralize and persist anything just for this so for now I'll be creative with the ids.

Owner

davidfowl commented Feb 23, 2013

This will throw now. It'll be impossible to send a message to the bus with the same id since that's an invalid scenario.

Owner

davidfowl commented Mar 9, 2013

This doesn't happen anymore since we clear previous messages once we see one that was already received. We still need to make changes so that older continue reading the buffer until it's done.

davidfowl closed this Mar 9, 2013

davidfowl reopened this Mar 9, 2013

Contributor

Xiaohongt commented Mar 12, 2013

verified

Xiaohongt closed this Mar 12, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment