Python - Создать новый URI для определенного класса в Pyro4
Я создавал приложение для чата, в котором клиенты, подключенные к серверу, могут иметь личный чат с помощью Pyro4. Клиенты регистрируются на сервере, чтобы указать всем, что они доступны для приватного чата. Теперь клиенты могут приглашать других клиентов в сеанс приватного чата, используя RMI для обмена сообщениями напрямую. Ниже мой код класса.
@Pyro4.expose
@Pyro4.behavior(instance_mode="single")
class Messaging(object):
def __init__(self):
self._connection = ''
self._messages_to_server = []
self._messages_to_client = []
def read_messages_to_server(self):
try:
return self._messages_to_server.pop(0)
except:
return FALSE
def read_messages_to_client(self):
try:
return self._messages_to_client.pop(0)
except:
return FALSE
def send_to_server(self, message):
self._messages_to_server.append(message)
def send_to_client(self, message):
self._messages_to_client.append(message)
def set_connection(self, allow):
self._connection = allow
def get_connection(self):
return self._connection
Всякий раз, когда один клиент приглашает одного клиента для приватного чата, Мой код перезапускается ниже, чтобы создать URI.
daemon = Pyro4.Daemon()
uri_str = daemon.register(Messaging())
daemon.requestLoop()
Работает нормально, при первом запуске. Но для второго запроса приватного чата выдает ошибку:
Pyro4.errors.DaemonError: object or class already has a Pyro id
Как я могу это исправить? Я хочу создать другой URI для другой пары клиентов, устанавливающих частное соединение?