URL: <http://gna.org/bugs/?23283>
Summary: Use libwebsockets in Freeciv-web, remove freeciv-proxy Project: Freeciv Submitted by: andreasr Submitted on: Sun 15 Feb 2015 10:22:04 PM UTC Category: freeciv-web Severity: 1 - Wish Priority: 5 - Normal Status: None Assigned to: None Originator Email: Open/Closed: Open Release: Discussion Lock: Any Operating System: GNU/Linux Planned Release: _______________________________________________________ Details: I have long seen the need to use the libwebsockets[1] library in the Freeciv-web C server, and remove the need for freeciv-proxy [2]. Currently the flow of a packet goes like this: [Client browser] -> (JSON over websockets) -> [Nginx HTTP proxy server] -> (JSON over websockets proxyed to correct Freeciv-proxy instance by nginx) -> [Freeciv-proxy (Python WebSocket server running Tornado)] -> (JSON over Freeciv binary socket packet format) -> [Freeciv-web C server] I propose we simplyfy it to this instead: [Client browser] -> (JSON over websockets) -> [Nginx HTTP proxy server] -> (JSON over websockets proxyed to correct Freeciv-web server instance by nginx) -> [Freeciv-web C server running libwebsockets] This would involve implementing a WebSocket server inside the Freeciv server, by using the libwebsockets library to send WebSocket messages using the existing JSON packet code. It is important to enable websocket compression, and to when sending multiple packets from the server to client to collect them all and send as a single packet. This will improve performance quite a lot, since Python is much slower than the performance we can get with libwebsockets in C. Freeciv-proxy running on Python is also limited by the Python GIL. Marko, given all the great changes to the JSON network protocol recently, what do you think of this proposal? I have tried and failed doing this once previously, since I couldn't get it working, but I think you might be able to. [1] https://libwebsockets.org/ and https://github.com/warmcat/libwebsockets [2] https://github.com/freeciv/freeciv-web/tree/master/freeciv-proxy [3] http://www.tornadoweb.org/en/stable/ _______________________________________________________ Reply to this item at: <http://gna.org/bugs/?23283> _______________________________________________ Message sent via/by Gna! http://gna.org/ _______________________________________________ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev