Save before flight
This commit is contained in:
parent
5f27c22681
commit
b9e63ff7cd
3 changed files with 42 additions and 10 deletions
14
TODO.goals
14
TODO.goals
|
|
@ -1,2 +1,12 @@
|
||||||
# US/Pacific 11/19/2013
|
Check that SSL websocket connections work properly
|
||||||
Include graingert's pull request on travis.yml
|
Use continuous integration with TravisCI
|
||||||
|
Do not connect to blank namespace if overriding default namespace exists #40
|
||||||
|
Upgrade to socket.io 1.2 #41
|
||||||
|
Write a unit test to make sure that the client can disconnect properly #42
|
||||||
|
Check that setting stream=True makes sure that we receive all server events #45
|
||||||
|
Revive heartbeat as separate process thanks to sarietta
|
||||||
|
Credit everyone who took the time to submit an issue or pull request
|
||||||
|
Support Python 3
|
||||||
|
Use urllib.parse.urlparse
|
||||||
|
Merge sarietta's pull request
|
||||||
|
Add __version__
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
from socketIO_client import SocketIO
|
from socketIO_client import SocketIO
|
||||||
|
|
||||||
|
|
||||||
def on_news(self, data):
|
# def on_news(self, data):
|
||||||
print(data)
|
# print(data)
|
||||||
self.emit('my other event', {'my': 'data'})
|
# self.emit('my other event', {'my': 'data'})
|
||||||
|
|
||||||
|
|
||||||
s = SocketIO('localhost', 9000)
|
s = SocketIO('localhost', 9000)
|
||||||
s.on('news', on_news)
|
s.emit('whee')
|
||||||
|
# s.on('news', on_news)
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@ class EngineIO(object):
|
||||||
|
|
||||||
def __init__(self, host, port):
|
def __init__(self, host, port):
|
||||||
url = 'http://%s:%s/%s/' % (host, port, self._path)
|
url = 'http://%s:%s/%s/' % (host, port, self._path)
|
||||||
session = requests.Session()
|
self.session = requests.Session()
|
||||||
response = session.get(url, params={
|
response = self.session.get(url, params={
|
||||||
'EIO': self._engine_io_protocol,
|
'EIO': self._engine_io_protocol,
|
||||||
'transport': 'polling',
|
'transport': 'polling',
|
||||||
't': self._get_timestamp(),
|
't': self._get_timestamp(),
|
||||||
|
|
@ -21,12 +21,13 @@ class EngineIO(object):
|
||||||
packet_type, packet = packs[0]
|
packet_type, packet = packs[0]
|
||||||
assert packet_type == 0
|
assert packet_type == 0
|
||||||
packet_json = json.loads(packet)
|
packet_json = json.loads(packet)
|
||||||
|
self._session_id = packet_json['sid']
|
||||||
print(packet_json)
|
print(packet_json)
|
||||||
response = session.get(url, params={
|
response = self.session.get(url, params={
|
||||||
'EIO': self._engine_io_protocol,
|
'EIO': self._engine_io_protocol,
|
||||||
'transport': 'polling',
|
'transport': 'polling',
|
||||||
't': self._get_timestamp(),
|
't': self._get_timestamp(),
|
||||||
'sid': packet_json['sid'],
|
'sid': self._session_id,
|
||||||
})
|
})
|
||||||
packs = _decode_content(response.content)
|
packs = _decode_content(response.content)
|
||||||
for packet_type, packet in packs:
|
for packet_type, packet in packs:
|
||||||
|
|
@ -39,6 +40,17 @@ class EngineIO(object):
|
||||||
self._request_index += 1
|
self._request_index += 1
|
||||||
return timestamp
|
return timestamp
|
||||||
|
|
||||||
|
def _message(self, packet):
|
||||||
|
packet_type = 4
|
||||||
|
response = self.session.post(self.url, params={
|
||||||
|
'EIO': self._engine_io_protocol,
|
||||||
|
'transport': 'polling',
|
||||||
|
't': self._get_timestamp(),
|
||||||
|
'sid': self._session_id,
|
||||||
|
}, data=_encode_content([(packet_type, packet)]), headers={
|
||||||
|
'content-type': 'application/octet-stream',
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
class SocketIO(EngineIO):
|
class SocketIO(EngineIO):
|
||||||
|
|
||||||
|
|
@ -51,6 +63,11 @@ class SocketIO(EngineIO):
|
||||||
def on(self, event, callback):
|
def on(self, event, callback):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def emit(self, event):
|
||||||
|
packet_type = 2
|
||||||
|
packet = json.dumps([event])
|
||||||
|
self._message(str(packet_type) + packet)
|
||||||
|
|
||||||
|
|
||||||
def _decode_content(content):
|
def _decode_content(content):
|
||||||
packs = []
|
packs = []
|
||||||
|
|
@ -81,3 +98,7 @@ def _read_packet(content, index, packet_length):
|
||||||
index += 1
|
index += 1
|
||||||
packet = content[index:index + packet_length]
|
packet = content[index:index + packet_length]
|
||||||
return index + packet_length, packet
|
return index + packet_length, packet
|
||||||
|
|
||||||
|
|
||||||
|
def _encode_content(packs):
|
||||||
|
pass
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue