Skip to content

casperr04/pyspringchat_client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stomp over websocket

simple python client for stomp over websocket.

Usage

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

API

.connect(login, passcode, headers, connectCallback, errorCallback, timeout)

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(disconnectCallback, headers)

Disconnect from STOMP server, the callback will be called if disconnectCallback is not None.

.subscribe(dest, callback)

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(dest)

Unsubscribe a topic.

.send(dest, headers=None, body=None)

Sends message to destination on the server. The format of message could be json or others, depends on the STOMP server.

TODO

  • : Heart beat
  • : Transaction

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages