Skip to main content

Websocket client for Phoenix Elixir

Project description

phxsocket

Synchronous phoenix websocket client using callbacks

Phoenix channels

Requirements

websocket_client

Usage

Import the package

import phxsocket

Create socket client

socket = phxsocket.Client("wss://target.url/websocket", {"options": "something"})

Connect and join a channel

def on_open(socket):
  channel = socket.channel("room:roomname", {"more options": "something else"})

  join_success, resp = self.channel.join()

def reconnect():
  socket.connect()

socket.on_open = on_open
socket.on_error = lambda socket, message: (print(message), reconnect())
socket.connect()

Subscribe to events

def do_something(payload):
  thing = payload["thing"]

channel.on("eventname", do_something)

Push data to a channel

channel.push("eventname", {"some": "data"})

Push data and wait for a response

message = channel.push("eventname", {"some": "data"}, reply=True)
response = message.wait_for_response() # blocking

Push data and react to the response with a callback

def respond(payload):
  print(payload)

channel.push("eventname", {"some": "data"}, respond)

Leave a channel

channel.leave()

Disconnect

socket.close()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phxsocket-0.0.1.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

phxsocket-0.0.1-py3-none-any.whl (16.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page