30 lines
703 B
Python
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")
|