After cloning, virtual environment with python3 needs to be created.
Create virtual environment with python3 and requirements file:
virtualenv ~/venv/socket -p python3
source ~/venv/socket/bin/activate
pip install -r requirements.txt
Update serviceScripts/env.sh
to point to correct IPs. For a server, IP is available as
ip add show
Select the ip with interface that has the highest probability that it points to a physical interface. In most systems this is eth0.
Run open_port.sh
to modify firewall to accept connection on the designated port.
Run start.sh
to start the server. Look for output/log at $HOME/logs/socketServer.log
.
~/software/venv/socket/bin/python send.py server:TEST:1
To check whether packets from client reach the host, use
sudo tcpdump -i enp68s0 'tcp port 8000' -v
This prints traffic to port 8000, say. Also helpful for determining actual IP address of the request; sometimes the actual source is behind a firewall and the IP could be mangled.
This address should be added to the $IPCLIENT
address list in env.sh
for open_port.sh
to allow connections.
Websockets further limits allowed connections to clients listed in websocketServer.py
. The origin is part of the send.py
makeup - adjust it so that websocketServer.py
will take it as trustworthy.
The error associated with mis-configuration is
websockets.exceptions.InvalidStatusCode: server rejected WebSocket connection: HTTP 403