socketio / socket.io-protocol

Socket.IO Protocol specification
https://socket.io
506 stars 62 forks source link

Document the handshake process #10

Closed rase- closed 3 years ago

rase- commented 9 years ago

The documentation for the handshake process should be documented.

Originally requested here: https://github.com/Automattic/socket.io/issues/1577

adamrothman commented 9 years ago

+1 please, am in the process of writing an iOS client for 1.x and reverse engineering is hard.

rauchg commented 9 years ago

We should add here: https://github.com/Automattic/socket.io-protocol

jgod commented 9 years ago

+1. The lib is fantastic and all but the difficulty writing custom clients is stopping people from upgrading from 0.9.

rauchg commented 9 years ago

We are working on this atm as we are preparing a Java server implementation

littlepedro78 commented 9 years ago

Any update??

cacharrin commented 9 years ago

I'm writing a custom client too... any update?

thetrompf commented 9 years ago

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.

cacharrin commented 9 years ago

Yep, i read the engine-io.protocol... i think its very abstract too...

computersarecool commented 9 years ago

+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?

NeoLegends commented 8 years ago

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.

adamrothman commented 8 years ago

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.

¯\_(ツ)_/¯

NeoLegends commented 8 years ago

Yeah, that hurts.

rlmaso2 commented 8 years ago

Any update? Do you all plan to release a document detailing the handshake process?

GimpMaster commented 7 years ago

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.

darrachequesne commented 3 years ago

Please see here: https://github.com/socketio/engine.io-protocol/tree/v3#anatomy-of-an-engineio-session