Save before flight

This commit is contained in:
Roy Hyunjin Han 2015-01-25 10:17:03 +09:00
commit b9e63ff7cd
3 changed files with 42 additions and 10 deletions

View file

@ -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__

View file

@ -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)

View file

@ -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