mirror of
https://github.com/fatedier/frp.git
synced 2026-05-15 08:05:49 -06:00
[GH-ISSUE #5291] WebSocket Support #4081
Labels
No labels
In Progress
WIP
WaitingForInfo
bug
doc
duplicate
easy
enhancement
future
help wanted
invalid
lifecycle/stale
need-issue-template
need-usage-help
no plan
proposal
pull-request
question
todo
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/frp#4081
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @bonzius on GitHub (Apr 21, 2026).
Original GitHub issue: https://github.com/fatedier/frp/issues/5291
Describe the feature request
I have an application that uses WebSocket. It works properly if I use type = "tcp". But in this case I can't use HTTPMultiplexing on Port 80. If I use type = "http" WebSocket is not supported.
Is there a work around to use HTTPMultiplexing on Port 80 + WebSocket?
Regards, Michael.
Describe alternatives you've considered
No response
Affected area
@fatedier commented on GitHub (Apr 23, 2026):
type = "http"in frp does support WebSocket. It's implemented via Go'shttputil.ReverseProxy(seepkg/util/vhost/http.go), which passesConnection: Upgraderequests through transparently, and there is an e2e test that covers exactly this scenario:test/e2e/v1/basic/http.go(a WebSocket echo server behind atype = "http"proxy, usingcustomDomains).So HTTP multiplexing on port 80 + WebSocket should work together. If it isn't working for you, please share:
vhostHTTPPort/bindPortsettingsMost likely causes from past reports:
bindPort(e.g. 7000) instead ofvhostHTTPPort.Hostheader doesn't matchcustomDomains/subdomainon the proxy.Upgrade/Connectionheaders.wss://but haven't terminated TLS (frps HTTP vhost is plaintext; usevhostHTTPSPortfor TLS).