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
|
||||
Include graingert's pull request on travis.yml
|
||||
Check that SSL websocket connections work properly
|
||||
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
|
||||
|
||||
|
||||
def on_news(self, data):
|
||||
print(data)
|
||||
self.emit('my other event', {'my': 'data'})
|
||||
# def on_news(self, data):
|
||||
# print(data)
|
||||
# self.emit('my other event', {'my': 'data'})
|
||||
|
||||
|
||||
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):
|
||||
url = 'http://%s:%s/%s/' % (host, port, self._path)
|
||||
session = requests.Session()
|
||||
response = session.get(url, params={
|
||||
self.session = requests.Session()
|
||||
response = self.session.get(url, params={
|
||||
'EIO': self._engine_io_protocol,
|
||||
'transport': 'polling',
|
||||
't': self._get_timestamp(),
|
||||
|
|
@ -21,12 +21,13 @@ class EngineIO(object):
|
|||
packet_type, packet = packs[0]
|
||||
assert packet_type == 0
|
||||
packet_json = json.loads(packet)
|
||||
self._session_id = packet_json['sid']
|
||||
print(packet_json)
|
||||
response = session.get(url, params={
|
||||
response = self.session.get(url, params={
|
||||
'EIO': self._engine_io_protocol,
|
||||
'transport': 'polling',
|
||||
't': self._get_timestamp(),
|
||||
'sid': packet_json['sid'],
|
||||
'sid': self._session_id,
|
||||
})
|
||||
packs = _decode_content(response.content)
|
||||
for packet_type, packet in packs:
|
||||
|
|
@ -39,6 +40,17 @@ class EngineIO(object):
|
|||
self._request_index += 1
|
||||
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):
|
||||
|
||||
|
|
@ -51,6 +63,11 @@ class SocketIO(EngineIO):
|
|||
def on(self, event, callback):
|
||||
pass
|
||||
|
||||
def emit(self, event):
|
||||
packet_type = 2
|
||||
packet = json.dumps([event])
|
||||
self._message(str(packet_type) + packet)
|
||||
|
||||
|
||||
def _decode_content(content):
|
||||
packs = []
|
||||
|
|
@ -81,3 +98,7 @@ def _read_packet(content, index, packet_length):
|
|||
index += 1
|
||||
packet = content[index:index + packet_length]
|
||||
return index + packet_length, packet
|
||||
|
||||
|
||||
def _encode_content(packs):
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue