Skip to main content

Python SDK for RealtimeX real-time messaging service

Project description

RealtimeX Python SDK

Python client library for RealtimeX real-time messaging service.

Installation

pip

pip install realtimex-python

Quick Start

from realtimex import RealtimeX

# Initialize
realtimex = RealtimeX('YOUR_API_KEY', {
    'cluster': 'eu',  # optional, default 'eu'
    'ws_host': 'ws.realtimex.net',  # optional
    'ws_port': 443,  # optional
    'encrypted': True,  # optional, default True
})

# Bind connection events
realtimex.connection.bind('connected', lambda: print('Connected!'))

# Connect to server
realtimex.connect()

# Subscribe to a channel
channel = realtimex.subscribe('my-channel')

# Listen for events
channel.bind('my-event', lambda data: print('Received:', data))

# Send client events
channel.trigger('client-my-event', {
    'message': 'Hello'
})

API

RealtimeX(api_key, options={})

Create a new RealtimeX instance.

Options:

  • cluster (str): Cluster name, default 'eu'
  • ws_host (str): WebSocket host, default 'ws.realtimex.net'
  • ws_port (int): WebSocket port, default 443
  • encrypted (bool): Use WSS, default True

Methods

subscribe(channel_name)

Subscribe to a channel.

channel = realtimex.subscribe('my-channel')

unsubscribe(channel_name)

Unsubscribe from a channel.

realtimex.unsubscribe('my-channel')

disconnect()

Disconnect from RealtimeX.

realtimex.disconnect()

Channel

bind(event, callback)

Bind to an event.

channel.bind('my-event', lambda data: print(data))

unbind(event, callback=None)

Unbind from an event.

channel.unbind('my-event')

trigger(event, data)

Trigger a client event (must be prefixed with client-).

channel.trigger('client-my-event', {'message': 'Hello'})

bind_global(callback)

Bind to all events on the channel.

channel.bind_global(lambda event, data: print(event, data))

Connection Events

realtimex.connection.bind('connecting', lambda: print('Connecting...'))
realtimex.connection.bind('connected', lambda: print('Connected!'))
realtimex.connection.bind('disconnected', lambda: print('Disconnected'))

Private Channels

With auth callback:

import requests

def authorizer(channel_name, socket_id):
    # Request auth from your server
    response = requests.post('http://localhost:3001/auth/channels', json={
        'channel_name': channel_name,
        'socket_id': socket_id
    })
    return response.json()  # Returns: {'auth': 'real_token', 'channel_data': '...'}

realtimex = RealtimeX('YOUR_API_KEY', 
    options={'ws_host': 'localhost', 'ws_port': 3001, 'encrypted': False},
    auth_callback=authorizer
)

realtimex.connect()
channel = realtimex.subscribe('private-my-channel')

Presence channels with user data:

realtimex = RealtimeX('YOUR_API_KEY',
    options={'ws_host': 'localhost', 'ws_port': 3001, 'encrypted': False},
    auth_callback=authorizer,
    user_data={'user_id': '123', 'name': 'John'}
)

realtimex.connect()
channel = realtimex.subscribe('presence-room-1')

Note: auth_callback is required for private/presence channels. It should return either:

  • A dict: {'auth': 'token', 'channel_data': '...'}
  • A string: 'auth_token' (for simple cases)

License

MIT

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

realtimex_python-1.0.3.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

realtimex_python-1.0.3-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file realtimex_python-1.0.3.tar.gz.

File metadata

  • Download URL: realtimex_python-1.0.3.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for realtimex_python-1.0.3.tar.gz
Algorithm Hash digest
SHA256 6b762de0cc64bdd448a6aee9f8e8307a4dc9a0dbef679415668f8437514f3443
MD5 f020b9818ca239943b3ddc3db0ee89bb
BLAKE2b-256 19bd3007d979b690a70dbf4592eb3617c88c75d05d86f2cdb5c274140a14d175

See more details on using hashes here.

File details

Details for the file realtimex_python-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for realtimex_python-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 747c4094927725a2baf9a55eafa0b352eae4eba6bcf638752eafb4a24c1a52c6
MD5 fb97faed46da6bf8a90334d195c88568
BLAKE2b-256 82506e898efd79740ab1ac860e89997e944f1d4ac3b4d3fb1d7df3a1d06587f7

See more details on using hashes here.

Supported by

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