socketIO-client Development Log




Pay Notebook Creator: Roy Hyunjin Han5
Set Container: Numerical CPU with TINY Memory for 10 Minutes 0
Total0

Vision

Ensure that Python scripts can communicate with a socket.io server.

Mission

Add binary support.

Owner

Roy Hyunjin Han

Context

The ability to send and receive binary data from a socket.io server seems to be important to many users.

Timeframe

20170727-1130 - 20170803-1130: 1 week estimated

20170727-1130 -

Objectives

Fix socketIO-client so that it works with socket.io@2.0.3 without errors.
Add binary support to socketIO-client.

Log

20170727-1130 - 20170727-1200: 30 minutes

+ Draft mission for binary support
+ Move missions from GitHub into CrossCompute

20170727-1245 - 20170727-1315: 30 minutes

Before I start working through the pull requests and issues, we should make sure that socketIO-client works with the latest socket.io. I think I should also add other people as maintainers so that I don't bear the sole burden of maintaining this package.

The latest version of socket.io is 2.0.3.

+ Install latest version of socket.io
+ Install latest version of socketIO-client
+ Remove usage of invisibleroads-macros

20170727-1645 - 20170727-1715: 30 minutes

20170731-1200 - 20170731-1300: 60 minutes

We're going to experiment with using CrossCompute to develop this open source package.

I think the first step is to just check that it works with the current version of socket.io. I know it is not going to work and I saw some issues and pull requests related to it.

0.9.18
0.9.19  # npm install -g socket.io@0
1.7.1
1.7.2
1.7.3
1.7.4   # npm install -g socket.io@1
2.0.0
2.0.1
2.0.2
2.0.3   # npm install -g socket.io@2

+ List the socket.io releases
+ Put each contributor on a separate line
+ Update README

20170731-1430 - 20170731-1445: 15 minutes

+ Use websockets._ssl_compat.SSLError
+ Work through relevant changes from 0.5.7.2 to 0.5.7.3 and port to 0.8.0

I think that the 0.8.0 series should be compatible with socket.io@1 and the 1.0.0 series should be compatible with socket.io@2. In particular, perhaps 0.9.0 should be the version that includes binary support.

+ Install socket.io@1
+ Run tests for 0.8.0

The tests pass for socket.io@1. Just in case, we should also work through the README steps manually. After that, we will work on all the issues except binary support. Then we will do binary support for 0.9.0. And we will support socket.io@2 for 1.0.0. That is the plan.

But this mission is specifically for binary support. Perhaps we can focus on binary support first, then work on other issues. The problem is that there are too many branches to manage at once now.

Tasks

Try to use socketIO-client manually using steps from README

Fix socketIO-client so that it works with latest socket.io    
Use invisibleroads_macros.url.format_url
Add binary support
    https://github.com/invisibleroads/socketIO-client/pull/85
    https://github.com/invisibleroads/socketIO-client/issues/70
    https://github.com/invisibleroads/socketIO-client/issues/71
    https://github.com/invisibleroads/socketIO-client/issues/91
Replace *args with args
    Investigate whether it is really true that callbacks can't take dictionaries
    https://github.com/invisibleroads/socketIO-client/pull/112
Check python3 support for socketIO-client 0.5.6
    https://github.com/invisibleroads/socketIO-client/issues/83
Check why connected=True after termination
    https://github.com/invisibleroads/socketIO-client/issues/80
    https://github.com/invisibleroads/socketIO-client/issues/98
Consider catching heartbeat thread exception
    https://github.com/invisibleroads/socketIO-client/issues/100
Check disconnection issues
    https://github.com/invisibleroads/socketIO-client/issues/107
    https://github.com/invisibleroads/socketIO-client/issues/111
Check why transports are not being set
    https://github.com/invisibleroads/socketIO-client/issues/102
Look at 404 not found error
    https://github.com/invisibleroads/socketIO-client/issues/101
Check whether it works on Windows 8
    https://github.com/invisibleroads/socketIO-client/issues/97
Consider allowing milliseconds
    https://github.com/invisibleroads/socketIO-client/issues/106
Consider using attrs instead of namedtuple
Release 0.8.0
Add other people as maintainers of this package