@proGO

Страница 375 из 1674
Vladimir
30.12.2016
08:20:58
А, так это в соседней ветке
Ну так проект значит жив.

Denis
30.12.2016
09:26:27
Судя по количество ишью

Я бы не пользовался

Мастер ветка пол года

Google
Denis
30.12.2016
09:27:03
Да и натягивать джс либу

На го тоже сомнительно

Maxim
30.12.2016
09:40:36
Я чутка потыкался - совсем не то.

Короче - я всё ещё ищу как мне решить проблемы с чатом на вебсокетах.

По крайней мере хотя бы для чтения получать не отредактированное тело очень хотелось бы, чтобы самостоятельно удалить префикс и нормально анмаршлить

Потому что костылить конвертацией св строку, а потом обратно - ну это дикость.

Denis
30.12.2016
09:44:31
Так там по-любому строка, они искэпят джсон с юзер инпутом

После чего это уже не джсон

Анмаршал ломается на том что половина джсон экранирована, а другая нет

Если бы все было экранировано

То стандартный анмаршал обработал бы

Maxim
30.12.2016
10:08:23
Это понятно.

Но я не уверен что сервер шлёт именно такой вит мессаги

Google
Maxim
30.12.2016
10:09:06
А н-нет. Всё таки такой вид.

Блять, руки бы поотрывать таким разрабам, конечно.

@kirilldanshin есть идеи как не есть кактус?

Max
30.12.2016
10:20:48
Короче - я всё ещё ищу как мне решить проблемы с чатом на вебсокетах.
https://github.com/gorilla/websocket Вот вебсокет сервер, думаю написать на его основе чат не слишком сложно, если нет каких то оверсложных требований

Maxim
30.12.2016
10:21:34
И им я как раз и пользовался пока не выяснилось, что ответы от сервака структурно ломаются на середине

Max
30.12.2016
10:22:41
У меня не сервер, а клиент
https://github.com/golang-samples/websocket/blob/master/websocket-chat/src/chat/client.go Вот пример простого клиента, может это поможет

Constantine
30.12.2016
10:28:34
а в чем тогда проблемы?

Maxim
30.12.2016
10:31:06
Я или устал, или Args реально содержит СТРОКУ со структурой? 5:::{"name":"message","args":["{\"method\":\"chatMsg\",\"params\":{\"channel\":\"toby3d\",\"name\":\"toby3d\",\"nameColor\":\"7756CB\",\"text\":\"лол\",\"time\":1482971600,\"id\":\"3X9R\",\"role\":\"admin\",\"isFollower\":true,\"isSubscriber\":false,\"isOwner\":true,\"isStaff\":false,\"isCommunity\":false,\"media\":false,\"image\":\"/static/img/channel/toby3d_53e2ef88b0098_small.jpg\",\"buffer\":true,\"buffersent\":true}}"]}

Так и есть

в args строка с json

Constantine
30.12.2016
10:31:36
вот это треш

)))

Maxim
30.12.2016
10:31:46
Вот я о чём и говорю

Сначала сетовал на гориллу. В принципе, она тоже косячит и отказывается декодировать ответ, потому что префикс начинается с цифры и всё ломается

Но даже если не декодировать, то ответ всё равно оказывается примерно таким

И суть в том, что у меня есть заготовленные структуры, по которым я собираю сообщения для отправки. А что мне делать с получаемыми сообщениями? Как их декодировать если такие косяки?

Ладно, хрен с ним с префиксом - его вырезать можно как из байтов, так и из строки. Но с "args" что делать-то?

ros
30.12.2016
10:40:16
брать строкой анэскейпить и анмаршалить)

Google
ros
30.12.2016
10:40:53
{ "method":"chatMsg", "params":{ "channel":"toby3d", "name":"toby3d", "nameColor":"7756CB", "text":"лол", "time":1482971600, "id":"3X9R", "role":"admin", "isFollower":true, "isSubscriber":false, "isOwner":true, "isStaff":false, "isCommunity":false, "media":false, "image":"/static/img/channel/toby3d_53e2ef88b0098_small.jpg", "buffer":true, "buffersent":true } }

но насрать в руки точно нужно

Maxim
30.12.2016
10:41:23
брать строкой анэскейпить и анмаршалить)
Боюсь что в некоторых случаях анэскейп может всё поломать, если текст сообщения будет содержать кавычки

ros
30.12.2016
10:41:56
недолжно поломать кавычки тоже должны заэскейпены быть

Maxim
30.12.2016
11:35:25
Слава дискорду за прямую связь с некоторыми разработчиками в хитбоксе

Я им всё своё негодование вылил. Сразу обнаружились некоторые проблемы на их стороне, которые было обещано исправить.

Что касается чата - скорее всего это не может быть пофиксено, потмоу что это работает через socket.io

Denis
30.12.2016
12:42:25
все решается в несколько шагов 1) выдернуть строку args через, например, gjson 2) без unescape (стандартная либа сама его сделает) эту строку кинуть на анмаршл в соответствующую структуру 3) если ошибка (params не массив, а строка), кинуть на анмаршл в структуру, где params - строка 4) создать структуру со всеми данными

можно и не выдергивать отдельно просто создать оригинальную структуру с доп полями type MyResponse struct { ... Args ParsedArgs ParsedArgsWithFixedParams ... }

доп поля заполнить после парсинга args

Maxim
30.12.2016
13:14:40
Не, ну это жесть, конечно. Нужно учитывать что так будет ежесекундно происходить.

Ладно Я один самого себя грузить буду - переживу, но Я планирую в далеком будущем держать это общедоступной админкой для бота.

Denis
30.12.2016
13:16:20
все ок с производительностью, все ограничится максимальным количеством сообщений в секунду у hitbox

Denis
30.12.2016
13:21:46
входящие сообщения можно обрабатывать в очереди (нужно)

Maxim
30.12.2016
13:21:47
Daniel
30.12.2016
13:31:01
лучше обойтись

особенно в го, где возможностей оптимизации почти нет

Peter
30.12.2016
13:39:33
pprof может показать нагрузку на винт?

Maxim
30.12.2016
13:46:29
Народ, а расскажите какая структура у проекта должна быть правильной. Файлы, директории. Хочу небольшой рест сервис с базой написать. Ну т.е. не в одном файле же все писать?

Google
Subbotin
30.12.2016
13:48:48
пиши в одном. потом поймешь как разнести

а то будет как у джава программистов srs/java/com/super/puper/abstract/factory/BestResultMaker.java в котором 50 строк комментария с лицензией а потом функция на 5 строк

Daniel
30.12.2016
13:53:13
это ничего

это нормально

в яве другое плохо, а не это

Denis
30.12.2016
13:53:51
Народ, а расскажите какая структура у проекта должна быть правильной. Файлы, директории. Хочу небольшой рест сервис с базой написать. Ну т.е. не в одном файле же все писать?
можно просто, можно сложно папка конфиг, папка моделс, папка контроллеров, как mvc только без v, в мэйне все склеиваешь

Daniel
30.12.2016
13:54:15
Народ, а расскажите какая структура у проекта должна быть правильной. Файлы, директории. Хочу небольшой рест сервис с базой написать. Ну т.е. не в одном файле же все писать?
у меня есть несколько проектов, которые в один файл поместились. есть несколько, которые поместились в один пекедж.

Maxim
30.12.2016
13:56:03
Ага, понял. Спасибо )

Daniel
30.12.2016
13:58:53
есть несколько, в которых их внутренние пекеджи в конце концов выехали в отдельную репу, и стали либой для микросервисов

Admin
ERROR: S client not available

Evgenij
30.12.2016
14:01:03
в яве другое плохо, а не это
Раскажи - интересно(не ради холивара)

Kirill
30.12.2016
14:33:48
Народ, а расскажите какая структура у проекта должна быть правильной. Файлы, директории. Хочу небольшой рест сервис с базой написать. Ну т.е. не в одном файле же все писать?
у себя перешел на структуру пакетов вида const.go main.go // опционально, если main() types.go typeName_method.go funcName.go sharedTypes/types.go // шареные между остальными пакетами типы, если есть sharedTypes/new.go sharedTypes/typeName_method.go

Evgenij
30.12.2016
14:35:47
typeName_method.go что под этом скрывается?

Kirill
30.12.2016
14:36:28
typeName_method.go что под этом скрывается?
typeName — название какого-то типа, method — название какого-то метода на этом типе

Evgenij
30.12.2016
14:37:28
Ок - но это гдето в глубине всего этого или как апи для снаружи?

Kirill
30.12.2016
14:38:10
Ок - но это гдето в глубине всего этого или как апи для снаружи?
а при чем тут "апи для снаружи"? это просто структура файлов.

Daniel
30.12.2016
14:38:54
Раскажи - интересно(не ради холивара)
если коротко - ява сложная. по моему мнению, она была сделана для того, чтобы один Белый Человек (тм) мог выстроить "отказоустойчивый отряд из полевых мышей, способный достичь цели" (с) в результате, когда на яве пишешь ты сам - ты сначала играешь за человека, а потом за отряд мышей и у тебя зазвивается расстройство личности отсюда фабрики фабрик и вся прочая вот эта типично явная хуета

Google
Denis
30.12.2016
14:41:16
что насчет всяких котлинов и скал, был опыт?

Evgenij
30.12.2016
14:41:36
Просто если график бабла в конкретныйязык (выражения мыслей) пострить - в джава дофига вложили - но они и легко откажутся - прибыль решает всё!

Dzmitry
30.12.2016
14:43:09
Скажите, а есть ли люди, которые перешли с java на golang и теперь этим зарабатывают на жизнь?

Daniel
30.12.2016
14:44:02
Скажите, а есть ли люди, которые перешли с java на golang и теперь этим зарабатывают на жизнь?
я таких не знаю. я пописывал на яве, но на жизнь зарабатывал другим

golang - это скорее для усталых путников интерпретируемых языков

Evgenij
30.12.2016
14:44:50
Джава фореве - но фореве умрёт без подпитки

Очень и очень много легаси - ужасного итп - на это даже студенты не пойдут - выход = автомат по миграции))))

Dzmitry
30.12.2016
14:46:13
гы)

Daniel
30.12.2016
14:48:06
ну и я пока не понял, насколько хорошо ява ложится на микросервисную архитектуру

раньше мне похур было, я эксплуатацией занимался

а теперь - разработкой

и оказалось, что все эти монолитные монстры реально отравляют мне жизнь

вот кстати

у меня есть работа

удаленка, фултайм

перловый монолитный монстр

Evgenij
30.12.2016
14:50:07
Ты ты сказал про ПЕРЛ?

ООООэ

Daniel
30.12.2016
14:50:31
надо его как-то развивать, а делать это уже не получается - он окуклился, как тот кадавр

Страница 375 из 1674