Implement Server Send Events (SSE) to Golang Web App
Budget: €30 – €250 EUR
We need to implement SSE (Server Send Events) to an existing Go web app (https://github.com/josephspurrier/gowebapp) which utilizes authentication.
Here are the requirements:
At fronend (using javascript):
- Clients subscribe and receive general events at particular routes, like /dashboard/
- Each authenticated user receives her own events tailored specifically for him, like /message/notification/
At backend (Golang):
- Server keeps track of all online users so that it can publish general events to them
- Server can publish messages to all online users of a particular page at once
- Server can publish messages to an individual user visiting a particular page
- Events should be pushed as string or json.
- The events are published in different time intervals, ranging from minutes to hours. So the connection should remain open as long as user is online.
The solution should be scalable, robust and require minimal changes to the existing code base.
Please do not bid if you are not familiar with Golang and SSE technology, or you don't have a clear idea of how to implement this.
Here are the requirements:
At fronend (using javascript):
- Clients subscribe and receive general events at particular routes, like /dashboard/
- Each authenticated user receives her own events tailored specifically for him, like /message/notification/
At backend (Golang):
- Server keeps track of all online users so that it can publish general events to them
- Server can publish messages to all online users of a particular page at once
- Server can publish messages to an individual user visiting a particular page
- Events should be pushed as string or json.
- The events are published in different time intervals, ranging from minutes to hours. So the connection should remain open as long as user is online.
The solution should be scalable, robust and require minimal changes to the existing code base.
Please do not bid if you are not familiar with Golang and SSE technology, or you don't have a clear idea of how to implement this.