Metadata-Version: 2.0
Name: signalr-client-threads
Version: 0.0.10
Summary: Fork of SignalR client for Python based on threads instead of gevent
Home-page: https://github.com/PawelTroka/signalr-client-threads
Author: Taucraft Limited, Michael Herrmann, Pawel Troka
Author-email: info@taucraft.com, pawel.troka@outlook.com
License: Apache
Description-Content-Type: UNKNOWN
Keywords: signalr
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Dist: websocket-client
Requires-Dist: sseclient
Requires-Dist: requests

signalr-client-threads
======================

Python client proxy for `SignalR <http://signalr.net/>`_.

*Note: This is currently not compatible with ASP.NET Core SignalR (.NET Core 2.1), due to some changes in SignalR protocol there.*


Requirements
------------

Install requirements by running::

    pip install -r requirements


Fork of SignalR client for Python based on threads instead of gevent.


Compatibility
-------------

Compatible with Python 2 and 3.


Usage
-----
Here is sample usage::

    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)



