Anonymous
А чего там сложно ? Если в одной локалке, можно даже броадкасты/мультикасты слать =)
Думаю есть попроще вариант, чем рулить потоком байтов...
Илья
Anonymous
ээ ... окай ...
Я не настолько хардкорщик ))
Anonymous
Я не настолько хардкорщик ))
На самом деле, ничего сложного или хардкорного тут нет. Просто открыть пару сокетов, и отправлять хоть тот же json друг другу
Anonymous
прототип можно сделать за пару часов %)
Anonymous
На самом деле, ничего сложного или хардкорного тут нет. Просто открыть пару сокетов, и отправлять хоть тот же json друг другу
На самом деле сложно. Если в формате "запрос-ответ", то легко, а если асинхрон, то тут уже траблы ))
Andrey
А то ведь можно не думать и http
Anonymous
А какие тут траблы, например ?
В параллельной отправке двух сообщений в разных направлениях.
Anonymous
А насколько важна скорость?
тут скорее не вопрос скорости, а в том, чтобы в одном соединении общаться в обе стороны как сервер с сервером. А http - это клиент-сервер...
Anonymous
Сложна! ))
Вот правда, Я не могу понять, в чем именно тут сложность ? Написать десяток лишних строчек ?
Andrey
Это запасной план если ничего не найду.
Ок, если развивать мысль, то можно уже посмотреть в сторону websocket
Andrey
потому, что это все поверх http работает
Andrey
зато подключение постоянное
Anonymous
Ок, если развивать мысль, то можно уже посмотреть в сторону websocket
https://github.com/golang-samples/websocket/blob/master/cli/src/client.go Это вебсокет? Это тоже клиент/сервер. Соответственно, через одно соединение я не смогу от сервера отправить запрос клиенту...
Andrey
сможете
Andrey
Суть websocket как раз в постоянном коннекте и отправке сообщений в обе стороны
Vasily
Тут же вроде клиент-серверное общение? А мне нужно, чтобы на равных было. Можно так сделать?
там есть двусторонний стриминг если надо единичные запросы - 2 коннекта друг к дуруг установите
Anonymous
То есть без двух коннектов никак не обойтись?
Vasily
вебсокет хорошо выше порекомендовали
Vasily
но всё равно коннектится будет один только
Vasily
ну или тупо по чистому tcp гоняйте данные туда-сюда
Sebor▂▅▇█▓▒░
мне кажется для асихронки идеален udp
Anonymous
Anonymous
Хм, похоже в вебсокете могу сделать так: запустить горутину в цикле с бесконечным Read а write по необходимости
Anonymous
Я же могу одновременно делать read и write?
Andrey
да)
Anonymous
Или только поочереди?
Andrey
2 горутины
Andrey
в одной читаете
Andrey
в другой пишете
Anonymous
Хм, вроде всё прояснилось, пойду делать эксперименты. Спасибо!
Anonymous
Я же могу одновременно делать read и write?
каждая из этих операций, ЕМНИП, атомарна
Nik
У json есть тип RawMessage. В случае произвольного содержимого данных, можно анмаршалить map[string]json.RawMessage, и потом разбирать только нужный ключ. Собственно вопрос - есть ли yaml либа с подобной игрушкой? Посмотрел самые популярные - не нашел.
Nik
Или только рефлексия?
Natalia
Всем привет! Есть #вакансия (Мск, #middle, офис, от 120к), можно ее тут где-то кинуть? Может, будет актуально кому-то 🙂
Natalia
Спасибо!
Natalia
Anonymous
переделываю под себя tgbotapi там реквест делается через http.Client.PostForm(url, params) мне нужно отправлять реквест через multipart там запись параметров идет так: for key, val := range(params) { writer.WriteField(key, val) } короч трабла в том что url.Values это map[string][]string как ее вписать в multipart фигню эту?
Anonymous
оригинальная функция
Anonymous
моя функция
Daniel
вот откуда эта манера постить код картинками?
Andrey
вот откуда эта манера постить код картинками?
Откуда эта манера заставлять думать за себя других?)
Anonymous
кстати между ними есть разница? http.client.postform и http.client.do
Anonymous
Ну понятно что есть, какая?
Aleksandr
do шлет любой реквест, postform - post в www-form-urlencoded
Aleksandr
do - самая низкоуровневая, все остальное - обертки над ней
Aleksandr
это понятно, откуда...
оттуда же и манера постить картинки - для этого надо подумать, а удобно ли будет отвечающему с такой подачей вопроса
Anonymous
сделал так for param, values := range(params) { for _, value := range(values){ writer.WriteField(param, value) } } не работает
A
dep init не может, а если руками в Gopkg.toml, то будет работать.
В том и дело, что руками сопоставление с .git - без .git прописывать в Gopkg.toml. Как-то это ненормально. :(
Daniel
должен все попробовать
A
В том и дело, он фоллбекается на ssh, после таймайта по http.
Daniel
ну - пофиксят, наверное
A
Ну, судя по обсуждению, пока вяло как-то, хотя вроде как "да, действительно, надо бы" разные проскакивают.
Daniel
если не найдут повода отреджектить
Vladimir
У нас такой косяк был из за гитлаба корпоративного
Vladimir
Решается двумя строками в конфиге гита
A
Сейчас в .gitconfig InsteadOf прописан, но это только для гита прокатывает.
Daniel
и для всего, что гитом пользуется
A
go get и dep пользуются гитом?
Daniel
да
Daniel
конечно
A
Тогда почему не работает? :(