javipalanca / simfleet

Agent-based fleet simulator to test strategies
MIT License
10 stars 9 forks source link

About the XMPP server #5

Closed xinyu-site closed 2 years ago

xinyu-site commented 4 years ago

Description

I try to use Simfleet to do some simulation. How to use Simfleet on windows with Gajim? It is hard to use Simfleet for people who are not familiar with XMPP. Could you please tell me how to setup XMPP server and work with Simfleet in detail. Thanks!

What I Did

I installed the Gajim and ran the Simfleet in the command line.


(base) C:\Users\lenovo>simfleet
2020-08-06 18:45:38.105 | INFO     | simfleet.simulator:__init__:72 - Starting SimFleet
2020-08-06 18:45:38.109 | INFO     | simfleet.simulator:load_icons:173 - Reading icons c:\users\lenovo\anaconda3\lib\site-packages\simfleet\templates\data\img_transports.json
connection failed: [Errno 10061] Connect call failed ('127.0.0.1', 5222)
connection failed: [Errno 10061] Connect call failed ('127.0.0.1', 5222)
Traceback (most recent call last):
  File "c:\users\lenovo\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\users\lenovo\anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\lenovo\anaconda3\Scripts\simfleet.exe\__main__.py", line 7, in <module>
  File "c:\users\lenovo\anaconda3\lib\site-packages\click\core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "c:\users\lenovo\anaconda3\lib\site-packages\click\core.py", line 717, in main
    rv = self.invoke(ctx)
  File "c:\users\lenovo\anaconda3\lib\site-packages\click\core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\users\lenovo\anaconda3\lib\site-packages\click\core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "c:\users\lenovo\anaconda3\lib\site-packages\simfleet\cli.py", line 53, in main
    simulator = SimulatorAgent(config=simfleet_config, agentjid=simulator_name)
  File "c:\users\lenovo\anaconda3\lib\site-packages\simfleet\simulator.py", line 87, in __init__
    self.create_directory_agent(name=config.directory_name, password=config.directory_password)
  File "c:\users\lenovo\anaconda3\lib\site-packages\simfleet\simulator.py", line 834, in create_directory_agent
    agent.start().result()
  File "c:\users\lenovo\anaconda3\lib\concurrent\futures\_base.py", line 435, in result
    return self.__get_result()
  File "c:\users\lenovo\anaconda3\lib\concurrent\futures\_base.py", line 384, in __get_result
    raise self._exception
  File "c:\users\lenovo\anaconda3\lib\site-packages\spade\agent.py", line 101, in _async_start
    await self._async_register()
  File "c:\users\lenovo\anaconda3\lib\site-packages\spade\agent.py", line 146, in _async_register
    self.jid, metadata, loop=self.loop
  File "c:\users\lenovo\anaconda3\lib\site-packages\aioxmpp\node.py", line 415, in connect_xmlstream
    exceptions
aioxmpp.errors.MultiOSError: failed to connect to XMPP domain '127.0.0.1': multiple errors: [Errno 10061] Connect call failed ('127.0.0.1', 5222)
Okroshiashvili commented 3 years ago

@xjtueryx I had the same problem and solved. You need to go to Prosody config file, which is located at /etc/prosody/prosody.cfg.lua and change allow_registration = false to allow_registration = true. Save this change in config file and restart prosody by running sudo prosodyctl restart in terminal. After restarting the prosody run simulation as simfleet --config myconfig.json

javipalanca commented 3 years ago

Prosody is not compatible with Windows. But take care to activate in-band registration in the xmpp server you are using.