simple python client for stomp over websocket.
The usage is simple if you have experience using Stomp js, assuming you have built a websocket server with SpringBoot, below is the way to connet:
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT)
client = Client("ws://127.0.0.1:8080/gs-guide-websocket")
# connect to the endpoint
client.connect()
# subscribe channel
client.subscribe("/topic/1", callback=print_frame)
# send msg to channel
client.send("/topic/1", body=json.dumps({'name': 'tom'}))
time.sleep(3)
client.disconnect()
Attemps to connect server, the timeout
default to 0 means that will block until a successful connection. Also you could set login and passcode if the server requires auth.
Disconnect from STOMP server, the callback will be called if disconnectCallback
is not None.
Subscribes to a destination on the STOMP server to receive messages that are published on it. This method will return a tuple (subscribe_id, unsubscribe)
:
sub_id, unsubscribe = client.subscribe("/topic/1", some_func)
unsubscribe() # This will unsubscrite topic '/topic/1'
The callback
must be a function that accepts a frame argument:
def some_func(frame):
print(frame.command) # get commend
print(frame.headers) # get headers
print(frame.body) # get body
Unsubscribe a topic.
Sends message to destination on the server. The format of message could be json or others, depends on the STOMP server.
- : Heart beat
- : Transaction