Skip to main content

A socket.io client library

Project description

Here is a socket.io client library for Python. You can use it to write test code for your socket.io server.

Thanks to rod for the StackOverflow question and answer on which this code is based.

Thanks to liris for websocket-client and to guille for the socket.io specification.

Thanks to Paul Kienzle, Josh VanderLinden, Ian Fitzpatrick for submitting code to expand support of the socket.io protocol.

Installation

VIRTUAL_ENV=$HOME/.virtualenv

# Prepare isolated environment
virtualenv $VIRTUAL_ENV

# Activate isolated environment
source $VIRTUAL_ENV/bin/activate

# Install package
easy_install -U socketIO-client

Usage

Activate isolated environment.

VIRTUAL_ENV=$HOME/.virtualenv
source $VIRTUAL_ENV/bin/activate

Emit.

from socketIO_client import SocketIO

socketIO = SocketIO('localhost', 8000)
socketIO.emit('aaa', {'bbb': 'ccc'})

Emit with callback.

from socketIO_client import SocketIO

def on_response(arg1, arg2, arg3, arg4):
    print arg1, arg2, arg3, arg4

socketIO = SocketIO('localhost', 8000)
socketIO.emit('aaa', {'bbb': 'ccc'}, on_response)
socketIO.wait()

Define events.

from socketIO_client import SocketIO

def on_ddd(arg1, arg2, arg3, arg4):
    print arg1, arg2, arg3, arg4

socketIO = SocketIO('localhost', 8000)
socketIO.on('ddd', on_ddd)

Define events in a namespace.

from socketIO_client import SocketIO, BaseNamespace

class Namespace(BaseNamespace):

    def on_ddd(self, arg1, arg2):
        self.socketIO.emit('eee', {'fff': arg1 + arg2})

socketIO = SocketIO('localhost', 8000, Namespace)

Define standard events.

from socketIO_client import SocketIO, BaseNamespace

class Namespace(BaseNamespace):

    def on_connect(self, socketIO):
        print '[Connected]'

    def on_disconnect(self):
        print '[Disconnected]'

    def on_error(self, name, message):
        print '[Error] %s: %s' % (name, message)

    def on_message(self, id, message):
        print '[Message] %s: %s' % (id, message)

socketIO = SocketIO('localhost', 8000, Namespace)

Define different behavior for different channels on a single socket.

mainSocket = SocketIO('localhost', 8000, MainNamespace())
chatSocket = mainSocket.connect('/chat', ChatNamespace())
newsSocket = mainSocket.connect('/news', NewsNamespace())

License

This software is available under the MIT License.

0.2

  • Added support for callbacks and channels thanks to Paul Kienzle

  • Incorporated suggestions from Josh VanderLinden and Ian Fitzpatrick

0.1

  • Wrapped code from StackOverflow

  • Added exception handling to destructor in case of connection failure

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

socketIO-client-0.2.tar.gz (5.4 kB view details)

Uploaded Source

File details

Details for the file socketIO-client-0.2.tar.gz.

File metadata

File hashes

Hashes for socketIO-client-0.2.tar.gz
Algorithm Hash digest
SHA256 92d86e2fd79d3d8e3001596a661de42aebb42badc9f4923e15532f6d6fcd9037
MD5 42a095be52779fd2ecc3a60b5bdfac98
BLAKE2b-256 0bd711b03683914aa027f43194f3bbee5130e14ef87e4293a6e47f34a4070c1c

See more details on using hashes here.

Supported by

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