import zmq import sys from xmlrpc.server import SimpleXMLRPCServer PUB_PORT = int('5556') RPC_PORT = int('9000') POST_TOPIC = 'POST' if len(sys.argv) > 1: PUB_PORT = int(sys.argv[1]) context = zmq.Context() socket = context.socket(zmq.PUB) socket.bind(f"tcp://*:{PUB_PORT}") def post(msg, user): socket.send_string(f"{POST_TOPIC};{user}: {msg}") print(f"Published post {user}: {msg}") return 'Success' if __name__ == "__main__": server = SimpleXMLRPCServer(('localhost', RPC_PORT), logRequests=True) server.register_function(post, 'post') try: print("Use Control-C to exit") server.serve_forever() except KeyboardInterrupt: print("Exiting")