Compare commits

..

2 Commits

Author SHA1 Message Date
4111dd0f25 fix: removing debugger for writePump 2025-09-25 17:33:00 +07:00
f91e24cc02 feat: adding rawQuery to safeWebsocketClient 2025-09-25 14:51:44 +07:00
2 changed files with 21 additions and 8 deletions

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"log"
"net/url"
"strings"
"time"
"git.neurocipta.com/rogerferdinan/safe-web-socket/internal"
@@ -18,7 +19,8 @@ const (
type SafeWebsocketClientBuilder struct {
baseHost *string `nil_checker:"required"`
basePort *uint16 `nil_checker:"required"`
path *string `nil_checkeer:"required"`
path *string
rawQuery *string
useTLS *bool
}
@@ -46,6 +48,11 @@ func (b *SafeWebsocketClientBuilder) Path(path string) *SafeWebsocketClientBuild
return b
}
func (b *SafeWebsocketClientBuilder) RawQuery(rawQuery string) *SafeWebsocketClientBuilder {
b.rawQuery = &rawQuery
return b
}
func (b *SafeWebsocketClientBuilder) Build() (*SafeWebsocketClient, error) {
if err := internal.NilChecker(b); err != nil {
return nil, err
@@ -62,7 +69,8 @@ func (b *SafeWebsocketClientBuilder) Build() (*SafeWebsocketClient, error) {
baseHost: *b.baseHost,
basePort: *b.basePort,
useTLS: useTLS,
path: *b.path,
path: b.path,
rawQuery: b.rawQuery,
ctx: ctx,
cancel: cancel,
dataChannel: make(chan []byte, 1),
@@ -83,7 +91,8 @@ type SafeWebsocketClient struct {
baseHost string
basePort uint16
useTLS bool
path string
path *string
rawQuery *string
dataChannel chan []byte
mu *internal.CustomRwMutex
conn *websocket.Conn
@@ -103,8 +112,16 @@ func (wsClient *SafeWebsocketClient) connect() error {
newURL := url.URL{
Scheme: scheme,
Host: fmt.Sprintf("%s:%d", wsClient.baseHost, wsClient.basePort),
Path: wsClient.path,
}
if wsClient.path != nil && strings.TrimSpace(*wsClient.path) != "" {
newURL.Path = *wsClient.path
}
if wsClient.rawQuery != nil && strings.TrimSpace(*wsClient.rawQuery) != "" {
newURL.RawQuery = *wsClient.rawQuery
}
conn, _, err := websocket.DefaultDialer.Dial(newURL.String(), nil)
if err != nil {
return fmt.Errorf("failed to connect to %s: %w", wsClient.baseHost, err)
@@ -174,7 +191,6 @@ func (wsClient *SafeWebsocketClient) startReceiveHandler() {
if err != nil {
return err
}
fmt.Println(string(message))
wsClient.dataChannel <- message
return nil
}); err != nil {

View File

@@ -18,9 +18,6 @@ type SafeWebsocketServerBuilder struct {
}
func NewSafeWebsocketServerBuilder() *SafeWebsocketServerBuilder {
h := internal.NewHub()
h.Run()
return &SafeWebsocketServerBuilder{
upgrader: &websocket.Upgrader{
ReadBufferSize: 1024,