Expand namespace structure
This commit is contained in:
parent
98c5ecea7f
commit
38e6038b8f
2 changed files with 77 additions and 38 deletions
|
|
@ -2,6 +2,8 @@ import json
|
||||||
import requests
|
import requests
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
from .exceptions import PacketError
|
||||||
|
|
||||||
|
|
||||||
__version__ = '0.6.1'
|
__version__ = '0.6.1'
|
||||||
TRANSPORTS = []
|
TRANSPORTS = []
|
||||||
|
|
@ -54,40 +56,51 @@ class EngineIO(object):
|
||||||
engineIO_packet_data)
|
engineIO_packet_data)
|
||||||
# Launch callbacks
|
# Launch callbacks
|
||||||
namespace = self.get_namespace()
|
namespace = self.get_namespace()
|
||||||
delegate = {
|
try:
|
||||||
0: self._on_open,
|
delegate = {
|
||||||
1: self._on_close,
|
0: self._on_open,
|
||||||
2: self._on_ping,
|
1: self._on_close,
|
||||||
3: self._on_pong,
|
2: self._on_ping,
|
||||||
4: self._on_message,
|
3: self._on_pong,
|
||||||
5: self._on_upgrade,
|
4: self._on_message,
|
||||||
6: self._on_noop,
|
5: self._on_upgrade,
|
||||||
}[engineIO_packet_type]
|
6: self._on_noop,
|
||||||
|
}[engineIO_packet_type]
|
||||||
|
except KeyError:
|
||||||
|
raise PacketError(
|
||||||
|
'unexpected engine.io packet type (%s)' % engineIO_packet_type)
|
||||||
delegate(engineIO_packet_data_parsed, namespace._find_packet_callback)
|
delegate(engineIO_packet_data_parsed, namespace._find_packet_callback)
|
||||||
return engineIO_packet_data
|
return engineIO_packet_data
|
||||||
|
|
||||||
|
def define(self, Namespace):
|
||||||
|
self._namespace = namespace = Namespace(self)
|
||||||
|
return namespace
|
||||||
|
|
||||||
def get_namespace(self):
|
def get_namespace(self):
|
||||||
|
try:
|
||||||
|
return self._namespace
|
||||||
|
except AttributeError:
|
||||||
|
raise PacketError('undefined engine.io namespace')
|
||||||
|
|
||||||
|
def _on_open(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_open(self):
|
def _on_close(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_close(self):
|
def _on_ping(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_ping(self):
|
def _on_pong(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_pong(self):
|
def _on_message(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_message(self):
|
def _on_upgrade(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_upgrade(self):
|
def _on_noop(self, data_parsed, find_packet_callback):
|
||||||
pass
|
|
||||||
|
|
||||||
def _on_noop(self):
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _get_timestamp(self):
|
def _get_timestamp(self):
|
||||||
|
|
@ -161,7 +174,16 @@ class SocketIO(EngineIO):
|
||||||
resource, **kw)
|
resource, **kw)
|
||||||
|
|
||||||
def define(self, Namespace, path=''):
|
def define(self, Namespace, path=''):
|
||||||
pass
|
if path:
|
||||||
|
self._connect(path)
|
||||||
|
self._namespace_by_path[path] = namespace = Namespace(self, path)
|
||||||
|
return namespace
|
||||||
|
|
||||||
|
def get_namespace(self, path=''):
|
||||||
|
try:
|
||||||
|
return self._namespace_by_path[path]
|
||||||
|
except KeyError:
|
||||||
|
raise PacketError('undefined socket.io namespace (%s)' % path)
|
||||||
|
|
||||||
def emit(self, event, *args, **kw):
|
def emit(self, event, *args, **kw):
|
||||||
socketIO_packet_type = 2
|
socketIO_packet_type = 2
|
||||||
|
|
@ -180,38 +202,41 @@ class SocketIO(EngineIO):
|
||||||
socketIO_packet_data)
|
socketIO_packet_data)
|
||||||
# Launch callbacks
|
# Launch callbacks
|
||||||
namespace = self.get_namespace()
|
namespace = self.get_namespace()
|
||||||
delegate = {
|
try:
|
||||||
0: self._on_connect,
|
delegate = {
|
||||||
1: self._on_disconnect,
|
0: self._on_connect,
|
||||||
2: self._on_event,
|
1: self._on_disconnect,
|
||||||
3: self._on_ack,
|
2: self._on_event,
|
||||||
4: self._on_error,
|
3: self._on_ack,
|
||||||
5: self._on_binary_event,
|
4: self._on_error,
|
||||||
6: self._on_binary_ack,
|
5: self._on_binary_event,
|
||||||
}[socketIO_packet_type]
|
6: self._on_binary_ack,
|
||||||
delegate(
|
}[socketIO_packet_type]
|
||||||
socketIO_packet_data_parsed, namespace._find_packet_callback)
|
except KeyError:
|
||||||
|
raise PacketError(
|
||||||
|
'unexpected socket.io packet type (%s)' % socketIO_packet_type)
|
||||||
|
delegate(socketIO_packet_data_parsed, namespace._find_packet_callback)
|
||||||
return socketIO_packet_data
|
return socketIO_packet_data
|
||||||
|
|
||||||
def _on_connect(self):
|
def _on_connect(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_disconnect(self):
|
def _on_disconnect(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_event(self):
|
def _on_event(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_ack(self):
|
def _on_ack(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_error(self):
|
def _on_error(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_binary_event(self):
|
def _on_binary_event(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _on_binary_ack(self):
|
def _on_binary_ack(self, data_parsed, find_packet_callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -223,6 +248,10 @@ class LoggingNamespace(BaseNamespace):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def find_callback(args, kw=None):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def _decode_content(content):
|
def _decode_content(content):
|
||||||
print content
|
print content
|
||||||
packets = []
|
packets = []
|
||||||
|
|
@ -277,5 +306,9 @@ def _make_packet_header(packet_string):
|
||||||
return ''.join(chr(x) for x in header_digits)
|
return ''.join(chr(x) for x in header_digits)
|
||||||
|
|
||||||
|
|
||||||
def find_callback(args, kw=None):
|
def _parse_engineIO_data():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def _parse_socketIO_data():
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
6
socketIO_client/exceptions.py
Normal file
6
socketIO_client/exceptions.py
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
class SocketIOError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class PacketError(SocketIOError):
|
||||||
|
pass
|
||||||
Loading…
Add table
Add a link
Reference in a new issue