Intro
As i introduced on my previous post, next step on my library was authentication on SignalR Core Hubs. A good guide and example of this authentication is this: aspnet docs. You can donwload fully working example on their github.
Once introduction is finished, let's go to the playground:
Server side
Quick fix, memory database
Creating a database on disk for this example ... no thanks
Go to Startup.cs, comment UseSqlServer and add UseInMemoryDatabase
...
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
// options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")
options.UseInMemoryDatabase()
);
...
Create user on the web
Client side
First, get auth token
Post request of this example is a form-data, response is a JSON.
def signalr_core_example_login(url, user, username_password):
response = requests.post(url, data={"email": user, "password": username_password})
return response.json()["token"]
Build connection and add signalr event handlers
token = signalr_core_example_login(login_url, username, password)
hub_connection = HubConnection(
server_url,
token=token,
negotiate_headers={"Authorization": "Bearer " + token})
hub_connection.build()
hub_connection.on("ReceiveSystemMessage", print)
hub_connection.on("ReceiveChatMessage", print)
hub_connection.on("ReceiveDirectMessage", print)
hub_connection.start()
Now you have connection initialized and you can send messages auth through signalr hubs.
Fully example
Future
- message pack
- Auth (now only working by querystring negotiate)
Links
I'm trying to build this library with simplest way possible, so if you think that there is a better way to do it, leave a comment. Asap i'll edit github library contribute section, so any contribution is welcommed. There is a lot of work to do with these, messagepack. streams ..
Thank you for reading, and write any thought below :D
Top comments (0)