Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable group notifications #18

Open
davidism opened this issue Sep 14, 2016 · 2 comments
Open

Enable group notifications #18

davidism opened this issue Sep 14, 2016 · 2 comments

Comments

@davidism
Copy link
Member

davidism commented Sep 14, 2016

Rabbit could detect @room-owners (and possibly other, custom groups) and use service worker push notifications to notify us.

@poke
Copy link
Member

poke commented Apr 20, 2017

This would have quite a few technical implications though:

  • In order to have a service worker, there would be the need to host it server side somewhere. So this would make rabbit have a web server component.
  • Users would have to actively go out of their way and “subscribe” to these notifications by visiting some rabbit website where the service worker is installed. This does not work automatically, especially not just from within chat.
  • Service workers are local to the client, so users would also have to remember to do this on every machine/browser they use. And do it again when the service worker gets removed (for whatever reason), which might be very difficult to detect.
  • We could use a user script or browser extension to do this on behalf of the user; but this would also require users to install that one, so this only shifts the responsibility a bit.

Overall, this would not be a reliant way to reach everybody since, when posting the @room-owners ping, there is no guarantee that everybody that should be pinged has signed up for the notifications using the above mechanism.

Another problem is that service workers run without you being on that website, so notifications would be instant even if a user isn’t actually on chat right now. This might be undesirable and might introduce a need to have a “do not disturb” mode, or ensure that pings only come through when you’re actually on SO (which could be tricky, and require some queueing system if you want to make sure that pings are ultimately seen by everyone).


I have an alternative idea that ultimately won’t solve all these problems but is technically less complex, so it’s overall a bit simpler:

Have a separate chat room sopython-notifications where users can join (add it as a favorite so they can autojoin it); that room is only for rabbit to ping individual users inside the room. So a @room-owners foo in the main room would make rabbit ping all members of the room-owners notification group inside the notification room, providing a link to the original post.

  • This would make the system completely self-contained within chat, without reyling on external components except the rabbit chat bot itself.
  • Users would only be required to join the room once every while to make sure that they still can get pinged from it.
  • It would also work across all clients, through the SO-native notification system. So users would not get pinged out of their way (e.g. when they aren’t actually in chat), but would still get the notification persistently through SO itself.
  • For users that were not active inside the notification room and thus cannot be pinged there, rabbit could fall back and ping those on the main room and also remind them to join the notification room again.

@KevinMGranger
Copy link
Contributor

Doesn't rabbit already have a server component? If there were a browser extension necessary for using it too, it would be easy to check for chat being open or not.

Although I like the idea of just using SO Chat for signaling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants