All Projects → ealsur → serverlessnotifications

ealsur / serverlessnotifications

Licence: MIT license
Serverless notifications with Azure Cosmos DB + Azure Functions + Azure SignalR

Programming Languages

javascript
184084 projects - #8 most used programming language
C#
18002 projects
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to serverlessnotifications

AzureFunctionExtensions
Set of Azure Function Extensions: Redis output and IDatabase resolving, HTTP calls, etc.
Stars: ✭ 32 (-46.67%)
Mutual labels:  azure-functions, signalr
TextMood
A Xamarin + IoT + Azure sample that detects the sentiment of incoming text messages, performs sentiment analysis on the text, and changes the color of a Philips Hue lightbulb
Stars: ✭ 52 (-13.33%)
Mutual labels:  azure-functions, signalr
AspNetCore.Client
On Build client generator for asp.net core projects
Stars: ✭ 14 (-76.67%)
Mutual labels:  azure-functions, signalr
functions-extension-101
Learn how to create your own Azure Functions extension in 5 steps
Stars: ✭ 35 (-41.67%)
Mutual labels:  azure-functions, azure-cosmos-db
serverless-recipes
Compendium of Serverless samples with Azure Cosmos DB
Stars: ✭ 30 (-50%)
Mutual labels:  azure-functions, azure-cosmos-db
IntelligentExperiences.OnContainers
See how Crowd Analytics platform built on Azure can provides occupancy insights in workspace and other location for safety while having technical fun with AI-driven platform on Kubernetes, with detailed walk through guide.
Stars: ✭ 41 (-31.67%)
Mutual labels:  azure-cosmos-db
pokeR
Planning poker with SignalR
Stars: ✭ 37 (-38.33%)
Mutual labels:  signalr
SdvCodeWebsite
Simeon Valev - Personal Blog - Developed on ASP.NET Core MVC - Server-Side Blazor - See README.md file for more information
Stars: ✭ 38 (-36.67%)
Mutual labels:  signalr
UnityR
Unity3D, SignalR real-time multiplayer game
Stars: ✭ 49 (-18.33%)
Mutual labels:  signalr
CfpExchange
An online community website used to share interesting call for papers with speakers.
Stars: ✭ 24 (-60%)
Mutual labels:  azure-functions
Funcaster
⚡ Serverless .NET solution for hosting your 🔊 podcasts with (nearly) zero costs using Azure Functions and Azure Storage Account.
Stars: ✭ 44 (-26.67%)
Mutual labels:  azure-functions
azure-functions-deno-worker
Run Deno 🦕 on Azure Functions ⚡️
Stars: ✭ 99 (+65%)
Mutual labels:  azure-functions
azure-event-driven-data-pipeline
Building event-driven data ingestion pipelines in Azure
Stars: ✭ 13 (-78.33%)
Mutual labels:  azure-functions
Memoyu.MedicalShared
该项目为毕设项目,基于Xamarin开发,关于医疗数据共享平台。基本模式为通过第三方HIS、LIS等系统提交数据到本平台,平台进行处理后向患者用户展示数据。
Stars: ✭ 26 (-56.67%)
Mutual labels:  signalr
live-share-editor
ソースコードをリアルタイムで共有できるオンラインエディタ
Stars: ✭ 15 (-75%)
Mutual labels:  signalr
AzureWebAppSSLManager
Acquires and manages free SSL certificates for Azure Web App and Azure Functions applications.
Stars: ✭ 70 (+16.67%)
Mutual labels:  azure-functions
flutter chat
A full-featured (simple message, voice, video) flutter chat application by SignalR and WebRTC
Stars: ✭ 52 (-13.33%)
Mutual labels:  signalr
Getting-Started-with-Cosmos-DB
A tutorial about how to start with Cosmos DB - The information I would have loved to have before setting out with Cosmos DB.
Stars: ✭ 16 (-73.33%)
Mutual labels:  azure-cosmos-db
CosmicWorks
How to model and partition data for Cosmos DB starting with the Adventure Works database.
Stars: ✭ 53 (-11.67%)
Mutual labels:  azure-cosmos-db
emud
emud是一个基于netcore + signalr + vue 开发的mud游戏框架
Stars: ✭ 44 (-26.67%)
Mutual labels:  signalr

Serverless notifications with Azure Cosmos DB + Azure Functions + Azure SignalR

This repo contains a reusable solution that creates a complete serverless scenario for a chat application that stores data in Azure Cosmos DB, Azure Functions for hosting and event processing and Azure SignalR for websocket client messaging.

To achieve complete serverless, this solution is using:

How does it work?

The solution will provision one Azure Function App with multiple Functions.

  • FileServer: Acts as a serverless File server for static files that will let a Web client browse and obtain the files in the www folder.
  • SaveChat: Will receive data from the connected Web clients and save it to Azure Cosmos DB.
  • SignalRConfiguration: Will send the required information to the Web client to initialize SignalR Websocket connection.
  • FeedToSignalR: Will trigger on new data in Azure Cosmos DB and broadcast it through Azure Signal R to all connected clients.

In order to support custom routes (particularly for the static Web host), it implements Azure Functions Proxies through a proxies.json file. So when browsing the base URL, it is instead calling one of the HTTP triggered Functions.

  1. When the Web client loads the static resources, it pulls the SignalR configuration from SignalRConfiguration.

  2. It will then negotiate with Azure SignalR the best transport protocol. SignalR connections

  3. When the user writes a message, it will save it to Azure Cosmos DB via an Ajax call to SaveChat Connected chat

  4. Each chat line is stored as a Document in Azure Cosmos DB. Stored document

  5. The FeedToSignalR will trigger and broadcast it to all Azure SignalR connected clients. Triggers

This solution does not create any server instance on your subscription, it runs completely on Azure Function's Consumption Plan and consumes Azure Cosmos DB as a serverless database and Azure SignalR as a serverless websocket notification service.

Requirements

  1. Have a pre-existing Azure Cosmos DB account to obtain the Connection String, the account needs to be a SQL API account. REMARKS: the format of the connection string should be "Endpoint=https://{cosmosdb-name}.service.signalr.net;AccessKey={key};".
    1. Create a database called chat and a collection called lines (it can be the smallest possible 400RU collection).
  2. Have a pre-existing Azure SignalR account to obtain the Connection String.

How can I use this repo?

Run it locally

Clone this repo, fill out the local.settings.json file with the Connection Strings for Azure Cosmos DB and Azure SignalR and run it with F5!

Open your browser in the base address informed by the Azure Function's runtime (something along the lines of http://localhost:<some-port>).

Deploy it with one click

Just click in the Deploy to Azure button and it will guide you into automatically creating the Azure Function app with all the code deployed on Azure.

Open your browser in the base address informed by the Azure Function's Portal (something along the lines of https://<your-app-name>.azurewebsites.net).

Acknowledges

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].