[GH-ISSUE #1076] Feature Request: WebSocket protocol support #1071

Open
opened 2026-03-03 19:24:17 +03:00 by kerem · 8 comments
Owner

Originally created by @zhuyingda on GitHub (Nov 29, 2021).
Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1076

Proxyman version? (Ex. Proxyman 1.4.3)

Version 2.35.0 (23500)

macOS Version? (Ex. mac 10.14)

11.6 (20G165)

Steps to reproduce

Using any programming language SDK to start a websocket server (ws or wss) at 127.0.0.1:8003 or other ip/port, and then start a client to connect this websocket server.

Expected behavior

See ws traffic in Proxyman GUI, just like Charles.

Screenshots (optional)

Originally created by @zhuyingda on GitHub (Nov 29, 2021). Original GitHub issue: https://github.com/ProxymanApp/Proxyman/issues/1076 ### Proxyman version? (Ex. Proxyman 1.4.3) Version 2.35.0 (23500) ### macOS Version? (Ex. mac 10.14) 11.6 (20G165) ### Steps to reproduce Using any programming language SDK to start a websocket server (ws or wss) at 127.0.0.1:8003 or other ip/port, and then start a client to connect this websocket server. ### Expected behavior See ws traffic in Proxyman GUI, just like [Charles](https://stackoverflow.com/questions/33090087/how-to-inspect-websocket-traffic-with-charlesproxy-for-ios-simulator-devices). ### Screenshots (optional)
Author
Owner

@NghiaTranUIT commented on GitHub (Nov 29, 2021):

Hey @zhuyingda I'm not sure if you know that Proxyman and Charles Proxy could not capture WS/WSS from the iOS app anymore since WS/WSS traffic doesn't go through the HTTP Proxy Server.

If you use WS/WSS from web browser, Proxyman can capture it as usual 👍

You can read more at: https://github.com/ProxymanApp/Proxyman/issues/586#issuecomment-720197948

Solution: Use Atlantis framework and capture WS/WSS (https://github.com/ProxymanApp/Proxyman/issues/586#issuecomment-821054334)

<!-- gh-comment-id:981304384 --> @NghiaTranUIT commented on GitHub (Nov 29, 2021): Hey @zhuyingda I'm not sure if you know that Proxyman and Charles Proxy could not capture WS/WSS from the iOS app anymore since WS/WSS traffic doesn't go through the HTTP Proxy Server. If you use WS/WSS from web browser, Proxyman can capture it as usual 👍 You can read more at: https://github.com/ProxymanApp/Proxyman/issues/586#issuecomment-720197948 Solution: Use [Atlantis framework](https://github.com/ProxymanApp/atlantis#wswss-traffic) and capture WS/WSS (https://github.com/ProxymanApp/Proxyman/issues/586#issuecomment-821054334)
Author
Owner

@bubnov commented on GitHub (Mar 29, 2024):

@NghiaTranUIT I tried Chrome, Safari and the url https://echo.websocket.org. SSL is enabled. No wss:// in the list. Proxy overridden. How to troubleshoot this?

<!-- gh-comment-id:2026869105 --> @bubnov commented on GitHub (Mar 29, 2024): @NghiaTranUIT I tried Chrome, Safari and the url https://echo.websocket.org. SSL is enabled. No wss:// in the list. Proxy overridden. How to troubleshoot this?
Author
Owner

@NghiaTranUIT commented on GitHub (Mar 29, 2024):

@bubnov from what I see, https://echo.websocket.org/ is not a Websocket connection. You can see it in the Network Tab and Firefox. It's just a simple HTTPS Request.

As a result, Proxyman just displays as a HTTPS request/response.

CleanShot 2024-03-29 at 3  53 35@2x
Screenshot 2024-03-29 at 3 54 53 PM

<!-- gh-comment-id:2026904048 --> @NghiaTranUIT commented on GitHub (Mar 29, 2024): @bubnov from what I see, `https://echo.websocket.org/` is not a Websocket connection. You can see it in the Network Tab and Firefox. It's just a simple HTTPS Request. As a result, Proxyman just displays as a HTTPS request/response. ![CleanShot 2024-03-29 at 3  53 35@2x](https://github.com/ProxymanApp/Proxyman/assets/5878421/3af2e358-c8ff-441e-b8d2-bca636916570) ![Screenshot 2024-03-29 at 3 54 53 PM](https://github.com/ProxymanApp/Proxyman/assets/5878421/9e85b0b1-b58a-41d1-b271-a3f91be46901)
Author
Owner

@bubnov commented on GitHub (Mar 29, 2024):

@NghiaTranUIT I just used this comment as a reference https://github.com/ProxymanApp/Proxyman/issues/586#issuecomment-675834504

After we enable SSL-Proxying, Proxyman is able to read the header and understand that it's a WSS and handle the WSS traffic.

<!-- gh-comment-id:2026911455 --> @bubnov commented on GitHub (Mar 29, 2024): @NghiaTranUIT I just used this comment as a reference https://github.com/ProxymanApp/Proxyman/issues/586#issuecomment-675834504 > After we enable SSL-Proxying, Proxyman is able to read the header and understand that it's a WSS and handle the WSS traffic.
Author
Owner

@NghiaTranUIT commented on GitHub (Mar 29, 2024):

It's from 2020, and https://echo.websocket.org doesn't send any WS/WSS traffic when accessing from Web Browser. If you use NodeJS to make a WS Connection to this server, it will work.

To use WS on web browser, please use this https://socketsbay.com/test-websockets

Screenshot 2024-03-29 at 4 06 52 PM

<!-- gh-comment-id:2026916254 --> @NghiaTranUIT commented on GitHub (Mar 29, 2024): It's from 2020, and `https://echo.websocket.org ` doesn't send any WS/WSS traffic when accessing from Web Browser. If you use NodeJS to make a WS Connection to this server, it will work. To use WS on web browser, please use this https://socketsbay.com/test-websockets ![Screenshot 2024-03-29 at 4 06 52 PM](https://github.com/ProxymanApp/Proxyman/assets/5878421/0593a01d-c6bb-4a12-8ae2-720735181b14)
Author
Owner

@bubnov commented on GitHub (Mar 29, 2024):

@NghiaTranUIT Thanks for clarification. I managed to get it working with https://v3.piesocket.com/websocket-tester and in Chrome only. It is not working in Safari for some reason. Is it possible to capture websockets from Safari?

CleanShot 2024-03-29 at 11 15 36@2x

<!-- gh-comment-id:2026928199 --> @bubnov commented on GitHub (Mar 29, 2024): @NghiaTranUIT Thanks for clarification. I managed to get it working with https://v3.piesocket.com/websocket-tester and in Chrome only. It is not working in Safari for some reason. Is it possible to capture websockets from Safari? ![CleanShot 2024-03-29 at 11 15 36@2x](https://github.com/ProxymanApp/Proxyman/assets/818612/934857a3-a4b6-424c-ace0-9b728d3d8088)
Author
Owner

@NghiaTranUIT commented on GitHub (Mar 29, 2024):

from what I have experienced, Safari Websocket doesn't respect the system HTTP Proxy, it goes to the Internet without going to Proxyman.

<!-- gh-comment-id:2026930654 --> @NghiaTranUIT commented on GitHub (Mar 29, 2024): from what I have experienced, Safari Websocket doesn't respect the system HTTP Proxy, it goes to the Internet without going to Proxyman.
Author
Owner

@bubnov commented on GitHub (Mar 29, 2024):

@NghiaTranUIT I see. I have no questions so far. Thanks for your help! :-)

<!-- gh-comment-id:2026934223 --> @bubnov commented on GitHub (Mar 29, 2024): @NghiaTranUIT I see. I have no questions so far. Thanks for your help! :-)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Proxyman#1071
No description provided.