3 ms·
nice! I initially stayed away from lua due so I could support earlier redises, but these days I would totally take that dependency on to simplify the code. reg
by sams99 11y ago
nice! I initially stayed away from lua due so I could support earlier redises, but these days I would totally take that dependency on to simplify the code.
regarding that implementation, one diff I am spotting is that I also have a concept of global message id / global channel, this allows us to subscribe to a single spot and distribute from there (which keeps thread counts down and is particularly useful for server -> server comms.)
A lot of parity with our projects :)
Regarding web sockets, I decided against supporting them (initial implementations did) the issue is that web sockets are 100% flaky on HTTP and just add tons of unneeded complexity, in advent of HTTP/2 in NGINX they would be a net loss imo cause you would be wasting a connection.
- slact 11y ago> global message id / global channel Yeah, I don't have global ids. every message is bound to the channel it was published to. But I do understand that for your use case, (user + arbitrary list of groups), you'd need a good deal more than 4 channel multiplexing. It's a pretty strong use case and I'll see what I can do in the next month. Of course, I can be incentivized to work faster with a generous donation :) > Regarding web sockets [...] All the cool kids were talking about it, so I thought I might as well support them, too.
- solyaris 11y ago>All the cool kids were talking about it, so I thought I might as well support them, too. I agree with Sam Saffron (thanks Sam for al your githubcode) about some perplexity using websockets as a panacea nowadays. Nevertheless, I really appreciated Nchan structured approach, open to different available protocols (poll, SSE, websockets) :)