googollee / go-socket.io

socket.io library for golang, a realtime application framework.
Other
5.63k stars 826 forks source link

Client connect root ('/') doesn't have a namespace handler #629

Open kimbuba opened 5 months ago

kimbuba commented 5 months ago

Describe the bug I'm using the example Client to connect to this service https://cloudconvert.com/api/v2/socket

To Reproduce

client, err := socketio.NewClient("https://socketio.cloudconvert.com", nil)
if err != nil {
    return err
}

err = client.Connect()
if err != nil {
    return err
}

Environment (please complete the following information):

Additional context Is there an issue because of the provided URL? Is there any workaround?

thank you!

xuzuxing commented 3 months ago

Change the source code as follows:

// client.go line : 66

func (c *Client) Connect() error {
    dialer := engineio.Dialer{
        Transports: []transport.Transport{polling.Default},
    }

+   if len(c.opts.Transports) > 0 {
+       dialer.Transports = c.opts.Transports
+   }

and using

uri = "https://socketio.cloudconvert.com"
opts := &engineio.Options{
    Transports: []transport.Transport{polling.Default, websocket.Default},
}

client, err := socketio.NewClient(uri, opts)
client.Connect()

connected successfully, but an error will be reported after a while: websocket: close 1005 (no status)

go run .\main.go
2024/03/12 22:15:14 INFO header !BADKEY="{Type:0 ID:0 NeedAck:false Namespace: Query:}"
2024/03/12 22:15:14 INFO event !BADKEY=""
Connected 5DaspZxrcBEsFs42uzkA
2024/03/12 22:15:14 INFO header !BADKEY="{Type:0 ID:0 NeedAck:false Namespace: Query:}"
2024/03/12 22:15:14 INFO event !BADKEY=""
2024/03/12 22:15:39 INFO err !BADKEY="websocket: close 1005 (no status)"
2024/03/12 22:15:39 ERROR clientRead Error in Decoder err="websocket: close 1005 (no status)"
2024/03/12 22:15:39 ERROR clientError err="error in namespace: () with error: (websocket: close 1005 (no status))"
2024/03/12 22:15:39 ERROR close connect: err="use of closed network connection"
2024/03/12 22:15:39 INFO clientWrite Writer loop has stopped

Maybe it's not perfect.

xuzuxing commented 3 months ago

@kimbuba Hi friend. I forked and made some modifications today. I can connect to the remote server normally, and the ping pong is normal. There is just a problem, the line is disconnected, and I don't know how to reconnect. https://github.com/xuzuxing/go-socket.io

xuzuxing commented 3 months ago

QQ截图20240313225338

kimbuba commented 3 months ago

@xuzuxing thank you! I'll try to have a look, hopefully in the next days. Thank you!

nipungarg59 commented 1 month ago

What is the actual Fix for this? I also faced the same issue with go-socket.io v1.8.0-rc.1

zidanomar commented 1 month ago

any progress?