kean / Pulse

Network logger for Apple platforms
https://pulselogger.com
MIT License
6.25k stars 296 forks source link

Protocol documentation for SDK <> Viewer communication (allow others to support non-Apple platforms) #228

Open tonyxiao opened 9 months ago

tonyxiao commented 9 months ago

Pulse is amazing! But I'm out of luck if I'm working with Android, javascript or a backend programing language. If Pulse can document how its SDK and viewer communicates, I'd be happy to contribute something that allow people to view requests made in node.js in the Pulse viewer.

kean commented 8 months ago

Hey, @tonyxiao. Sorry, missed your message.

It could be a great exercise to try and document it. I consider the current protocol to still be in version 0.x (pre-production), and it's a bit overcomplicated, so before documenting it, it would be worth revising the current protocol.

Pulse SDK uses Bonjour for finding the macOS app. It then uses a basic binary protocol to communicate (see RemoteLogger-Protocol.swift). The messages are sent using JSON (NetworkLogger%2BEntities.swift).

If you are up to untangling it, I'll be happy to answer the questions. Alternatively, I would suggest waiting for protocol version 1.x. I'm open to suggestions on designing it.