websocket-manager icon indicating copy to clipboard operation
websocket-manager copied to clipboard

Chat Rooms

Open chemitaxis opened this issue 7 years ago • 12 comments

Hi, one question... Can I manage a Chat Room with this library? Is possible? Thanks!

chemitaxis avatar Mar 24 '17 23:03 chemitaxis

Hi!

At this moment it is not possible, you would need something like groups, which are not implemented right now. If you are interested in contributing, we can surely work together on this feature.

Thanks!

radu-matei avatar Mar 25 '17 09:03 radu-matei

Thanks @radu-matei I will try to work on it... ;)

chemitaxis avatar Mar 25 '17 09:03 chemitaxis

Let's keep this open and discuss what you would like to implement here :)

radu-matei avatar Mar 25 '17 15:03 radu-matei

Do you have something specific in mind to start with?

radu-matei avatar Mar 27 '17 16:03 radu-matei

Hi @radu-matei, not in this moment... We are migrating our App to ASP.NET Core, and in this moment we are researching about all our requirements... ;)

chemitaxis avatar Mar 28 '17 12:03 chemitaxis

Ok, then what would you need specifically from the library?

radu-matei avatar Mar 28 '17 17:03 radu-matei

One functionality in particular we need is ability to filter the message based on parameter to different clients. For ex:

  1. Assume multiple clients are connected which belong to different ogranization, they pass orgid when they registerfor websocket message.
  2. Only messages which are sent for an organization should be sent to the client which are registered based on the orgid

Is this possible ? Thx

Regards Satya

tanwarsatya avatar Apr 11 '17 21:04 tanwarsatya

I created a pull request that should allow for filtering connections based on anything. Find it here: https://github.com/radu-matei/websocket-manager/pull/32/commits

It also allows for adding properties and speeds up sending messages.

RobSchoenaker avatar May 17 '17 11:05 RobSchoenaker

Hello! I will try to implement chat rooms, any ideas about how should it be?? I thought of a concurrent dictionary. The dictionary would have the ID of the chat room as the key and a list of connection IDs.

miker1423 avatar Jun 19 '17 21:06 miker1423

Hi,

Should we instantiate one SocketManager per room, so each room has its own _sockets Dictionary? Are we having one SocketManager during application lifetime? Are we having one SocketHandler per client request?

dotrung avatar Oct 19 '17 10:10 dotrung

Hi @dotrung! answering you questions 1.- No, you only need one SocketManager. 2.- You should have just one during life time. 3.- AFAIK, no, you only have one socket handler that will be instantiated by the middleware.

miker1423 avatar Oct 19 '17 15:10 miker1423

Hi @miker1423

  1. Does it have affect to the scalability?
  2. After reading the issues/39, I though we only have one SocketManager for application lifetime. Actually we have multiple SocketManager, one per SocketHandler, which in turn has application lifetime. Thus, SocketManager has application lifetime.
  3. Is this issue solved? I see the middleware has Group feature.
  4. Should an endpoint a group? Sockets are being grouped by endpoint, and then in each group, they splitted into smaller groups.

dotrung avatar Oct 19 '17 16:10 dotrung