(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody io.Reader)
| 84 | } |
| 85 | |
| 86 | func DoWssRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody io.Reader) (*websocket.Conn, error) { |
| 87 | fullRequestURL, err := a.GetRequestURL(info) |
| 88 | if err != nil { |
| 89 | return nil, fmt.Errorf("get request url failed: %w", err) |
| 90 | } |
| 91 | targetHeader := http.Header{} |
| 92 | err = a.SetupRequestHeader(c, &targetHeader, info) |
| 93 | if err != nil { |
| 94 | return nil, fmt.Errorf("setup request header failed: %w", err) |
| 95 | } |
| 96 | targetHeader.Set("Content-Type", c.Request.Header.Get("Content-Type")) |
| 97 | targetConn, _, err := websocket.DefaultDialer.Dial(fullRequestURL, targetHeader) |
| 98 | if err != nil { |
| 99 | return nil, fmt.Errorf("dial failed to %s: %w", fullRequestURL, err) |
| 100 | } |
| 101 | // send request body |
| 102 | //all, err := io.ReadAll(requestBody) |
| 103 | //err = service.WssString(c, targetConn, string(all)) |
| 104 | return targetConn, nil |
| 105 | } |
| 106 | |
| 107 | func startPingKeepAlive(c *gin.Context, pingInterval time.Duration) context.CancelFunc { |
| 108 | pingerCtx, stopPinger := context.WithCancel(context.Background()) |
no test coverage detected