Currently an RPC endpoint which lists only the connected members is
available. A list of all members, even those who are offline, is
available only using the web dashboard. This pull request adds an RPC
endpoint which lists all members of the room.
This new endpoint can be used to augment SSB clients with extra
information about the rooms. For example friends who are room members
can be displayed in room-related settings or information about shared
rooms can be displayed in user profiles.
The new endpoint is a source endpoint called ["room", "members"]. Source
endpoint was selected to make it possible to return multiple smaller
responses instead of one large response - an async endpoint could
struggle to return the list of all members in case of larger rooms. Each
response carries a list of member objects. Currently the implementation
naively returns one member per response message but that can be adjusted
in the future.
Currently the request takes no arguments but extra options could be
added in the future.
Currently member objects only have one property: their id. This can be
extended in the future.
* remove room.announce and room.leave from muxrpc
those were confusion and implied some use beyond just opening
tunnel.endpoints/room.attendants (which implicitly does what
tunnel.announce does).
updates #89
The landing path (/) can now also be used as a websocket endpoint.
This enables use of the room server with ssb-browser-demo and similar
applications that can't use TCP connections.
also pin WIP muxrpc branch (fix-stupid-timeout)
it could be they error on the call for a valid reason.
TODO:
* we need to make an IsConnectionError(err)
* maybe level up the gossip.ping code for liveliness.