# socketIO-client Development Log

 Pay Notebook Creator: Roy Hyunjin Han 5 Set Container: Numerical CPU with TINY Memory for 10 Minutes 0 Total 0

# Vision¶

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

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.

+ Install latest version of socket.io
+ 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.

Try to use socketIO-client manually using steps from README

Fix socketIO-client so that it works with latest socket.io
Replace *args with args
Investigate whether it is really true that callbacks can't take dictionaries
Check python3 support for socketIO-client 0.5.6
Check why connected=True after termination
Check disconnection issues
Add other people as maintainers of this package