46045-syslab/twitter/server.py

30 lines
703 B
Python

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")