Closed rase- closed 3 years ago
+1 please, am in the process of writing an iOS client for 1.x and reverse engineering is hard.
We should add here: https://github.com/Automattic/socket.io-protocol
+1. The lib is fantastic and all but the difficulty writing custom clients is stopping people from upgrading from 0.9.
We are working on this atm as we are preparing a Java server implementation
Any update??
I'm writing a custom client too... any update?
The system has been abstracted a lot, and split in to 2 parts (protocol-wise), so the handshake is not handled by the socket.io-protocol
but by the engine.io-protocol
.
Yep, i read the engine-io.protocol... i think its very abstract too...
+1 The documentation from .9 seems to be the best (in order to find out what the 2 and 3 [heartbeat] messages mean). Unfortunately that has been removed and is a legacy repo. Going all the way through the history of that repo did help me. Perhaps those docs could just be updated?
The best way to write a client for this library is by capturing the network traffic using e.g. Wireshark and using the documents from engine.io-protocol
, socket.io-protocol
and the respective parser-libraries to work out something that works. It takes a while, but this is the best way to go, especially since some of the information in the protocol repos seems to be out of date.
It is crazy to me that the "best" way to write a client is still (more than a year later) to reverse-engineer the protocol by dissecting the source of some other client or snooping packets. One would think the maintainers would want to encourage external development by offering as much documentation as possible. I gave up on my client implementation due to the lack of docs, and went another direction.
¯\_(ツ)_/¯
Yeah, that hurts.
Any update? Do you all plan to release a document detailing the handshake process?
I'm assuming there still exists no documentation on the handshake and packet sniffing is the best course of action? Terrible if that is so.
The documentation for the handshake process should be documented.
Originally requested here: https://github.com/Automattic/socket.io/issues/1577