Witam,
Nie ukrywam że niewiele wiem o pythonie, a moim celem nie jest poznanie go dokładnie, tylko możliwie szybkie rozwiązanie problemu, dlatego zwracam się z prośbą o pomoc do bardziej doświadczonych (wszystko co do tej pory znalazłem w sieci rozwiązuje inne przypadki, a w moim się niestety nie sprawdza...).
W skrócie:
Mam serwer obsługujący grę w sieci lokalnej (czy jakiejkolwiek, to akurat nieistotne, komunikacja przeglądarka-serwer działa jak trzeba) - gra wymaga dwóch osób do każdej rozgrywki, gdy znajdzie się dwóch graczy tworzy im 'ich' grę - która jest obsługiwana przez oddzielny wątek (warunek konieczny).
Serwer otrzymuje zapytania z frontu i obsługuje je wywołując odpowiednie funkcje na wątku z konkretną grą.
Plik pythona z grą 'nasłuchuje' na wywołanie funkcji, wykonuje je i powinien zwrócić odpowiedź, ale tego nie robi i tego właśnie dotyczy moje pytanie:
Jak przesłać informację zwrotną z trwającego wątku (gra ciągle się toczy, więc nie kończymy wątku), na serwer (który będzie mógł zrobić z tym co trzeba, wysłać na front itp)?
W uogólnieniu tak wygląda plik z grą (czyli wątkiem):
'''
import queue
import threading
class Game(threading.Thread):
def init(...)
...
def onThread(self, function, *args, **kwargs):
self.q.put((function, args, kwargs))
def run(self):
while True:
try:
function, args, kwargs = self.q.get(timeout=self.timeout)
function(*args, **kwargs)
except queue.Empty:
self.idle()
def idle(self):
# put the code you would have put in the `run` loop here
pass
def do_sth(self,arg)
...
...
'''
Z góry dzięki za pomoc.