2013-06-17 14 views
6

Jakie są moje opcje integracji Pythona z SignalR?Korzystanie z serwera SignalR z kodu Pythona

Kod Pythona jest częścią dużego produktu firm trzecich, a nie kwestią preferowanego języka. Serwer SignalR zapewnia subskrypcje do istniejących produktów .NET.

Chcielibyśmy ponownie użyć serwera .NET SignalR z Pythonem.

+4

Co jest powodem down-głosowania? Jak mogę poprawić moje pytanie, które opisuje rzeczywisty problem programowania pracy? – Den

Odpowiedz

1

mogę myśleć kilka sposobów, a wszystkie one są teoretyczne (i prawdopodobnie złe pomysły na początek):

  • IPC - host aplikację Python i aplikację signalr jak różne procesy i jakoś informacji rury tylną i dalej, używając pewnego rodzaju mechanizmu ipc (nazwanego potokiem, tcp, czymś innym).
  • Użyj IronPython (co prawdopodobnie nie jest możliwe).
  • Przesłanie lekkiej wersji kodu SignalR do Pythona (https://github.com/davidfowl/SignalR.Lite). Prawdopodobnie nie będzie działać tak samo, ale może nie potrzebujesz wszystkich funkcji.

Albo możesz mieć nadzieję znaleźć bibliotekę w pythonie, która robi coś podobnego.

3

Jest klient dostępny na indeksie pakietu python nazwie "signalr-client" SignalR który obsługuje niektóre podstawowe funkcje SignalR Source

Jest kompatybilny z Pythona V2 i V3.

Funkcjonalność obsługiwana obejmuje:

  • Łączenie SignalR Hub metoda
  • Wywoływanie SignalR
  • obsługi
  • zdarzeń do przetworzenia SignalR Powiadomienia

wymaga ona następujące moduły zainstalowane poprzez pip:

  • gevent
  • sseclient
  • websocket-client

wykorzystanie próbki, jak na linku:

#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() 
+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić w nim istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. – FallenAngel

+1

Cóż, musisz pobrać bibliotekę z tego linku, więc link jest zasadniczo odpowiedzią, za mało miejsca, aby opisać, jak napisać klienta Pythona SignalR w dostępnym miejscu dla odpowiedzi –

+0

To może być polecenie, lub możesz być dodany zasadnicze części odpowiedzi, takie jak: * niektóre podstawowe funkcje sygnałowe * są wspierane i stają się odpowiedzią. – FallenAngel

Powiązane problemy