App
Event based app for websocket communication.
This is app that uses Framework. If not events handled by developer. this app works like demo(echo) app. This is a WSGI web app. So you can use any WSGI Server to host this app
from wsocket import WSocketApp, WebSocketError, logger, run
from time import sleep
logger.setLevel(10) # for debugging
def on_close(self, message, client):
print(repr(client) + " : " + message)
def on_connect(client):
print(repr(client) + " connected")
def on_message(message, client):
print(repr(clent) + " : " + repr(message))
try:
client.send("you said: " + message)
sleep(2)
client.send("you said: " + message)
except WebSocketError:
pass
app = WSocketApp()
app.onconnect += on_connect
app.onmessage += on_message
app.onclose += on_close
run(app)WSocketApp
class WSocketApp(
app=None,
protocol=None
)app should be a valid WSGI web application.
protocol is websocket sub protocol to accept (ex: WAMP)
Class variables
GUID - unique ID to generate websocket accept key
SUPPORTED_VERSIONS - 13, 8 or 7
websocket_class - "wsgi.websocket" in WSGI Environ
Events
onconnect - fires when client sent a message
onmessage - fires when client sent a message onmessage - fires when client sent a message
you can attach event handler method to event using
+=operatorapp = WSocketApp() app.onmessage += on_message app.onmessage += on_message2 # both `on_message` and `on_message2` can handle event run(app)+operatorapp = WSocketApp() app.onmessage + on_message app.onmessage + on_message2 # both `on_message` and `on_message2` can handle event run(app)=operatorapp = WSocketApp() app.onmessage = on_message # only `on_message` can handle event app.onmessage = on_message2 # now, only `on_message2` can handle event run(app)
You can't add new handlers to Event after = operator used. It replaces Event. But you can replace it again using another handler.
Last updated
Was this helpful?