### Installation After cloning, virtual environment with python3 needs to be created. Create virtual environment with python3 and requirements file: ```bash 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 ```bash 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`. ### Debugging #### Open port To check whether packets from client reach the host, use ```bash tcpdump '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. #### Allowed origins 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 ```bash websockets.exceptions.InvalidStatusCode: server rejected WebSocket connection: HTTP 403 ```