Size: a a a

Golang Developers — русскоговорящее сообщество

2021 April 12

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
Хотел тут нубских вопросов позадавать. Я немного запутался в вебсокетах: например, мне нужно реализовать клиент, который просто отправляет Json'ы на сервер. Я использую gorilla/websockets.В этом случае нужно ли мне писать хттп хендлер и апгрейдер, чтобы отправить запрос на сервер?
источник

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
А, представлюсь, раз тут так принято - я недавно начал разбираться в голанге, до этого немного писал на руби. Зовут Андрей, работаю в Red Hat, в основном траблшутинг одного большого руби-проекта. На голанге левой ногой пишу своего бота-трейдера. Живу в Брно (Чехия). #whois
источник

A

Andrew in Golang Developers — русскоговорящее сообщество
Если у тебя клиент на Go, который отправляет данные на сервер, то

connection := websocket.DefaultDialer.Dial()

И юзаешь это соединение для отправки.
источник

A

Andrew in Golang Developers — русскоговорящее сообщество
А если ты пишешь сервер, то там уже эти хэндлеры и апгрейдеры
источник

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
а, ок, пасибо
источник

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
понял. А если джсоны отправлять и получать, то лучше через readMessage и writeMessage, и потом их анмаршаллить, или лучше через readJson и writeJson?
источник

A

Andrew in Golang Developers — русскоговорящее сообщество
Второе же удобнее, меньше кода. Так что юзай readJson() и ему подобные.
источник

A

Andrew in Golang Developers — русскоговорящее сообщество
А через Message() - это доп. возможности для ручного контроля типа сообщений. Геморрой, врятли это тебе надо.
источник

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
понял, пасиб
источник

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
еще подскажите плз, не очень понимаю:
вот я законнектился по вебсокетс:
conn, _, err := websocket.DefaultDialer.Dial(url, nil)
дальше есть какое-то сообщение, которое я передал на сервер
conn.WriteJSON(message)
и как мне ответ сервера прочитать?
Я пытаюсь что-то типа err := conn.ReadJSON(&message), но не понимаю этой логики. ReadJson возвращает ошибку (если есть), но как ответ сервера вернуть?
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
ответа нет, есть сообщение от одной стороны к другой
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
клиент посылает сообщение, сервер получает его
сервер шлет сообщение, клиент получает
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
они не связаны
источник

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
аа
источник

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
но ведь ответ сервера где-то есть ))
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
вебсокет полностью асинхронная система, если хочешь связать сообщения, тебе нужно это сделать явно, тот кто шлет сообщение, должен добавить айди, и когда придет ответ, туда тоже нужно добавить то же самое айди
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
какой именно ответ тебя интересует?
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
фактически ответа нет
источник

AV

Andrey Veselov in Golang Developers — русскоговорящее сообщество
просто я чот запутался, как мне вернуть сообщение сервера, то есть я могу сделать с readMessage, но там как-то многословно получается
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
ты получаешь просто сообщение от сервета а не ответ
источник