Python client proxy for SignalR. Fork of signalr-client-py based on threads instead of gevent.
Note: This is currently not compatible with ASP.NET Core SignalR (.NET Core 2.1), due to some changes in SignalR protocol there
pip install signalr-client-threads
https://pypi.org/project/signalr-client-threads/
Install requirements by running
pip install -r requirements
Compatible with Python 2 and 3.
from requests import Session
from signalr import Connection
with Session() as session:
#create a connection
connection = Connection("http://localhost:5000/signalr", session)
#get chat hub
chat = connection.register_hub('chat')
#start a connection
connection.start()
#create new chat message handler
def print_received_message(data):
print('received: ', data)
#create new chat topic handler
def print_topic(topic, user):
print('topic: ', topic, user)
#create error handler
def print_error(error):
print('error: ', error)
#receive new chat messages from the hub
chat.client.on('newMessageReceived', print_received_message)
#change chat topic
chat.client.on('topicChanged', print_topic)
#process errors
connection.error += print_error
#start connection, optionally can be connection.start()
with connection:
#post new message
chat.server.invoke('send', 'Python is here')
#change chat topic
chat.server.invoke('setTopic', 'Welcome python!')
#invoke server method that throws error
chat.server.invoke('requestError')
#post another message
chat.server.invoke('send', 'Bye-bye!')
#wait a second before exit
connection.wait(1)
There is a sample application (ASP.NET vNext chat app) in examples folder. To run it:
-
Install ASP.NET 5 RC.
-
Go to examples/Chat folder.
-
dnvm upgrade
-
dnu restore
-
Install node and npm.
-
npm install
-
gulp
-
dnx web
Run source dnvm.sh
.