loading...
Cover image for SignalR core python client (IV): Improving syntax

SignalR core python client (IV): Improving syntax

mandrewcito profile image Andrés Baamonde Lozano Updated on ・1 min read

As Loongle (github user) suggested into this issue placed on github. Library syntax should migrate to an approach similar to javascript.

    this.hubConnection = new signalR.HubConnectionBuilder()
      .withUrl('http://localhost:55563/imessage/chart', {
        accessTokenFactory: () => this.tokenService.get().token
      }).build();

hub_connection = HubConnectionBuilder()
    .with_url(server_url, {
        "access_token_factory": lambda : tokenfactory().token
        })
    .build()

Library examples obviously will change, and it will look like :

Chat

hub_connection = HubConnectionBuilder().with_url(server_url).build()
hub_connection.on("ReceiveMessage", print)
hub_connection.start()

Chat with auth

hub_connection = HubConnectionBuilder()\
    .with_url(server_url, {
        "access_token_factory": lambda: signalr_core_example_login(login_url, username, password)
    })\
    .build()

hub_connection.on("ReceiveSystemMessage", print)
hub_connection.on("ReceiveChatMessage", print)
hub_connection.on("ReceiveDirectMessage", print)
hub_connection.start()

Streamming

hub_connection = HubConnectionBuilder().with_url(server_url).build()
hub_connection.start()
time.sleep(10)
hub_connection.stream(
    "Counter",
    [10, 500]).subscribe({
        "next": lambda x: print("next callback: ", x),
        "complete": lambda x: bye(False, x),
        "error": lambda x: bye(True, x)
    })

I will include this changes and the catch block soon (Im open to any suggest). Im doing this change before message pack, It´s a tiny change i prefer doing this changes now because changes in basic syntax too late are a pain.

The sense of this post its a question. What kind of syntax do you prefer?. Placing this on the next´s version library .. Its a good decision in next migration? Changes probably will come this weekend so post below if you think that im not on the right way (:

ToDo

  • message pack

Links

Github
Pypi

Thank you for reading, and write any thought below :D

Posted on by:

Discussion

markdown guide