Подключение клиента Golang socket.io к серверу

У меня есть этот объект, отправляемый на сервер сокетов в node-js, где клиент пытается установить соединение с сервером и передать данные для аутентификации. Объект выглядит так, как если бы он был передан.

      const socket = io({
    auth: {
    userId: "",
    username:"",
   }
});
   

Теперь я пытаюсь сделать то же самое в golang. Я использую эту библиотеку в golang для подключения к серверу. https://github.com/hesh915/go-socket.io-client Что будет эквивалентным объектом в golang, отправляемым в виде пары ключ-значение карты со следующей реализацией.

      opts := &socketio_client.Options{
    Transport: "websocket",
    Query:     make(map[string]string),
}
opts.Query["user"] = "user"
opts.Query["pwd"] = "pass"
uri := "http://192.168.1.70:9090/socket.io/"

client, err := socketio_client.NewClient(uri, opts)
if err != nil {
    log.Printf("NewClient error:%v\n", err)
    return
}

Пытался маршалировать структуру авторизации в байт [] и этот тип преобразовать в строку в opts.Query.

      auth := &Auth{
    userId: "",
    username: "",
}

res, _ := json.Marshal(auth)
opts := &socketio_client.Options{
    Transport: "websocket",
    Query:     make(map[string]string),
}

opts.Query["auth"] = string(res)

Но это бросаетio.EOFошибка, это нормально, потому что функциональность не предназначена для . Конечно, запрос является низкоуровневым параметром в socket.io, а auth — на уровне сокета. Вариант запроса предназначен дляqueryпараметры Есть ли способ пройтиauthпараметры? Любая подсказка, как добиться аутентификации пользователя здесь?

0 ответов

Другие вопросы по тегам