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'}) socketIO.wait(seconds=1)
Emit with callback.
from socketIO_client import SocketIO def on_response(*args): print args socketIO = SocketIO('localhost', 8000) socketIO.emit('aaa', {'bbb': 'ccc'}, on_response) socketIO.wait(forCallbacks=True)
Define events.
from socketIO_client import SocketIO def on_ddd(*args): print args socketIO = SocketIO('localhost', 8000) socketIO.on('ddd', on_ddd) socketIO.wait()
Define events in a namespace.
from socketIO_client import SocketIO, BaseNamespace class Namespace(BaseNamespace): def on_ddd(self, *args): self.socketIO.emit('eee', {'fff': 'ggg'}) socketIO = SocketIO('localhost', 8000, Namespace) socketIO.wait()
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) socketIO.wait()
Define different behavior for different channels on a single socket.
from socketIO_client import SocketIO, BaseNamespace class MainNamespace(BaseNamespace): def on_aaa(self, *args): print 'aaa', args class ChatNamespace(BaseNamespace): def on_bbb(self, *args): print 'bbb', args class NewsNamespace(BaseNamespace): def on_ccc(self, *args): print 'ccc', args mainSocket = SocketIO('localhost', 8000, MainNamespace) chatSocket = mainSocket.connect('/chat', ChatNamespace) newsSocket = mainSocket.connect('/news', NewsNamespace) mainSocket.wait()
License
This software is available under the MIT License.
0.3
Added support for secure connections
Added socketIO.wait()
Improved exception handling in heartbeatThread and namespaceThread
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file socketIO-client-0.3.tar.gz
.
File metadata
- Download URL: socketIO-client-0.3.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85e954b671851bf4d89e50e30f918f16e7b190b0fc0f815551a63689bac057b9 |
|
MD5 | 5cdce88f7827182e12790d17a6608288 |
|
BLAKE2b-256 | ecc34b77f425e6648ea233ee85f72328b29656be9345385df47c98768d221eea |