я не могу создать распределенную систему на osbrain - PullRequest
0 голосов
/ 07 февраля 2020

У меня 2 разных компьютера. Я хочу сделать одного из них хостом, а другого - агентом, отправляющим информацию. Я хочу сделать это с osbrain. Однако я столкнулся с проблемой.

Host Agent открывает сервер. 2. Мой агент подключается к серверу, но я не могу связаться между ними. Вы можете мне помочь?

Host_Agent.py

from osbrain import run_nameserver
from osbrain.proxy import locate_ns
from osbrain import run_agent
import osbrain
import time
import pickle

def log_message(agent, message):
    agent.log_info('Received: %s' % message)

if __name__ == '__main__':

    ns_sock = '127.0.0.1:1212'

    osbrain.config['TRANSPORT'] = 'tcp'

    ns_proxy = run_nameserver(ns_sock)
    ns_addr = locate_ns(ns_sock)
    # New Agent

    while True:
        time.sleep(5)
        agents_in_NS = osbrain.nameserver.NameServer.agents(ns_proxy)
        print('Current agents in Nameserver are: %s' %agents_in_NS)

New_Agent.py

from osbrain import NSProxy
from osbrain import run_agent
import osbrain
import Pyro4
import pickle
import time

if __name__ == '__main__':

    ns_addr = '127.0.0.1:1212'

    osbrain.config['TRANSPORT'] = 'tcp'

    ns_proxy = NSProxy(ns_addr)

    print('Registering Agent with server...')
    agent_proxy = run_agent('Agent3', ns_addr)
    address = agent_proxy.bind('PUSH', alias='main')
    time.sleep(5)
    print('I have joined the nameserver!')

    for i in range(1000):
        print("I try to say HEY!")
        agent_proxy.send('main',message='Hey')
        print("I tried")
        time.sleep(2)

    print("Done")

1 Ответ

0 голосов
/ 07 февраля 2020

127.0.0.1 - это адрес обратной связи, поэтому, где бы вы ни были, сервер будет прослушивать соединения только с машины, на которой он работает

В Host_Agent.py измените адрес локального хоста (ns_sock = '127.0.0.1:1212') на карта (ns_sock = '0.0.0.0:1212'). Это позволит вашему серверу прослушивать все входящие соединения со всех хостов.

Теперь в New_Agent.py замените localhost IP-адресом машины, на которой работает Host_Agent.py

ns_addr = '${IP_ADDRESS_OF_OTHER_MACHINE}:1212'
...