QuickstartPython (server)

Python (server-side)

pip install pusher
import pusher
 
p = pusher.Pusher(
    app_id='YOUR_APP_ID',
    key='YOUR_APP_KEY',
    secret='YOUR_APP_SECRET',
    cluster='sa',
    host='ws-sa.mawjly.com',
    port=443,
    ssl=True,
)
 
p.trigger('chat', 'message', {
    'user': 'alice',
    'text': 'Hello from Python!',
})

Channel info

channels = p.channels_info(prefix_filter='presence-')
info = p.channel_info('presence-room-1', attributes=['user_count'])
members = p.users_info('presence-room-1')

Auth endpoint (Flask example)

from flask import Flask, request, session, jsonify, abort
 
app = Flask(__name__)
 
@app.post('/pusher/auth')
def pusher_auth():
    user_id = session.get('user_id')
    if not user_id:
        abort(401)
 
    channel = request.form['channel_name']
    socket_id = request.form['socket_id']
 
    if channel.startswith('presence-'):
        auth = p.authenticate(
            channel=channel,
            socket_id=socket_id,
            custom_data={
                'user_id': str(user_id),
                'user_info': {'name': session['name']},
            },
        )
    else:
        auth = p.authenticate(channel=channel, socket_id=socket_id)
 
    return jsonify(auth)