Подключение клиента 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
параметры? Любая подсказка, как добиться аутентификации пользователя здесь?