Using SignalR server from Python code
14,917
Solution 1
I can think of a few ways and they are all theoretical (and probably bad ideas to begin with):
- IPC - host the python app and the signalr app as different processes and somehow pipe information back and forth using some kind of ipc mechanism (named pipes, tcp, something else).
- Use IronPython (which probably isn't really an option).
- Port a lightweight verison of SignalR to python (https://github.com/davidfowl/SignalR.Lite). Probably won't work the same way but maybe you don't need all the features.
Or you can hope to find a library in python that does something similar.
Solution 2
There is a SignalR client available on the python package index named "signalr-client" which supports some basic SignalR functionality Source
It is compatible with Python v2 and v3.
Functionality supported includes:
- Connecting to SignalR Hub
- Invoking SignalR Method
- Event handler to process SignalR Notifications
It requires the following modules installed via pip:
- gevent
- sseclient
- websocket-client
Sample usage as per link:
#create a connection
connection = Connection(url, session)
#start a connection
connection.start()
#add a handler to process notifications to the connection
connection.handlers += lambda data: print 'Connection: new notification.', data
#get chat hub
chat_hub = connection.hub('chat')
#create new chat message handler
def message_received(message):
print 'Hub: New message.', message
#receive new chat messages from the hub
chat_hub.client.on('message_received', message_received)
#send a new message to the hub
chat_hub.server.invoke('send_message', 'Hello!')
#do not receive new messages
chat_hub.client.off('message_received', message_received)
#close the connection
connection.close()
Related videos on Youtube
Comments
-
Den almost 2 years
What are my options for integrating Python with SignalR?
The Python code is a part of large 3rd party product, not a matter of language preference. SignalR server provides subscriptions to existing .NET products.
We would like to reuse .NET SignalR server with Python.
-
Den almost 11 yearsWhat is the reason for down-voting? How can I improve my question that describes an actual real-world work programming problem?
-
-
Malcolm McCaffery over 8 yearsWell you need to download the library from this link, so the link essentially is the answer, not enough space to describe how to write an Python SignalR client in the available space for answers
-
HEADLESS_0NE about 8 yearsUpdate: signalr-client v0.0.6 is compatible with Python 2 and 3.
-
Ytsen de Boer over 3 yearssignalr-python project seems dead to me. Try signalrcore on PyPi.