Alexander
06.06.2018
15:43:06
Я не понял, какое отношение ktor имеет к udp
В принципе можно устроить перессылку пакетов с http заголовками по upd. Когда-то так даже делали.
Bogdan
06.06.2018
15:44:22
Alexander
06.06.2018
15:45:33
Можно конечно. Просто ktor cам по себе не работает как сервер, он делается поверх сервера. Использовать его для передачи чего-то кроме http пакетов - очень странно.
Google
Andrey
06.06.2018
15:45:47
ktor имеет возможность работы с сокетами, с tcp или udp, я конечно понимаю что гдето внутри netty
в чем странность? Хотел получить нормальную обертку над стандартными сокетами
Alexander
06.06.2018
15:51:01
Ktor заточе под web. Делать на нем что-то низкоуровневое как-то очень странно.
Наиль
06.06.2018
15:54:22
Почему это он заточен под web? Где говорится об этом?
dimiii
06.06.2018
15:55:41
По какому прикладному протоколу будет общение?
Andrey
06.06.2018
16:01:24
да я прошел по этому туториалу, но оказалось что в случае udp() там работа отличается и в результата я имею BoundDatagrammSocket у которого есть метод send который принимает объект типа Datagram, и я не понимаю как мне собрать такой объект.
Alexander
06.06.2018
16:01:39
Ну я его не тыкал палкой какое-то время. Когда я в последний раз смотрел, там UDP опции вообще не было. Но вообще, работа с UDP протоколом вообще довольно сильно отличается от TCP.
dimiii
06.06.2018
16:04:35
Alexander
06.06.2018
16:06:37
Вот я о том же
В голом netty нет корутин, но там довольно легко все прикрутить.
Проблема с UDP в том, что нет гарантии доставки сообщения, поэтому нет такого понятия как установленный канал связи, ты просто кидаешь сообщение в сеть и надеешься, что кто-нибудь его поймает.
dimiii
06.06.2018
16:08:38
Вот я о том же
Кстати, думаю и без корутин можно обойтись, вряд ли там узкое место
Google
Alexander
06.06.2018
16:09:17
Ну тут вопрос удобства. RecieveChannel - очень удобная штука даже когда нет речи о производительности
Но в него легко все завернуть
dimiii
06.06.2018
16:09:32
Так что за протокол?
Andrey
06.06.2018
16:10:25
протокол? UDP или я не понял вашего вопроса
Alexander
06.06.2018
16:10:57
Это транспортного уровня. Какой протокол логического уровня? Чего в датаграммах?
Andrey
06.06.2018
16:13:52
набор символов в кoдировке utf8
Alexander
06.06.2018
16:15:02
То есть самоделка. Я бы скзал, что использовать ktor для этого - это забивать гвозди известным научным прибором.
Andrey
06.06.2018
16:15:15
конечно самоделка
Alexander
06.06.2018
16:15:45
А для чего исползуется, если не секрет (размер сети и все такое)?
Andrey
06.06.2018
16:16:13
наверное секрет)
Ладно я все понял, пойду netty попробую
Alexander
06.06.2018
16:17:25
Просто я сталкивался с необходимостью использовать udp только для обнаружения железок в локальной сетке. В этом случае лучше, чем просто голый сокет не придумаешь
Вот сходу нашел про netty: https://habr.com/sandbox/108498/
Но для маленьких сетей и низких загрузок, я бы и с ним не заморачивался.
Andrew
06.06.2018
16:26:15
Ещё можно вполне глянуть на Java NIO и его DatagramChannel. kotlinx-corutines-nio вам, похоже, из коробки не поможет, но им можно повдохновляться при желании.
Aleksandr
06.06.2018
17:39:03
а можно как-то лямбду превратить в java.utils.functions.Function ?
надо подсунуть nashorn-у а он не может вызвать
а все
сам дурак
Mikhail
06.06.2018
18:14:25
кстати, видел когда-то реквест слайсов в котлине. можно ведь их эмулировать с помощью экстеншнов и интрейнджей
operator fun <T> List<T>.get(slice: IntRange) : List<T> {
return this.subList(slice.first, slice.last)
}
val b = listOf(1, 2, 3, 4)
b[1..2]
> [2]
b[1..3]
> [2, 3]
Google
Boris
06.06.2018
18:16:10
Разве в стдлибе нету такого экстеншена?
OlegKrikun
06.06.2018
18:18:17
тыц https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/slice.html
Mikhail
06.06.2018
19:53:10
https://twitter.com/TFBenchmarks/status/1004446690001108992
Quantum Harmonizer
06.06.2018
20:04:03
https://t.me/TheDailyKotlin/56
Интересно, Дмитрий сказал, что дефолтные методы в интерфейсах работают чуть сложнее, чем copy-paste в реализовывающий класс.
Кто что-нибудь знает?
Leonid
06.06.2018
20:05:29
Декомпильни байткод в джаву, сразу все понятно станет
Quantum Harmonizer
06.06.2018
20:06:16
Alexey
07.06.2018
06:52:32
Через udp получается значительно больше данных гнать чем через tcp
Boris
07.06.2018
07:44:27
Alexey
07.06.2018
07:45:19
Если вдруг кому интересно
https://github.com/real-logic/aeron
Quantum Harmonizer
07.06.2018
07:58:54
Za
07.06.2018
08:20:06
Всем привет
Подскажите, пожалуйста, как вызвать getSystemService()?
Quantum Harmonizer
07.06.2018
08:21:18
Za
07.06.2018
08:22:18
Ну это понятно. Ошибку выдает. Мол "не знаю, о чем ты, человек"
Андрей
07.06.2018
08:24:47
Za
07.06.2018
08:27:13
Андрей
07.06.2018
08:28:02
в смысле тоже нет?
Google
Anton
07.06.2018
08:28:02
может ты не видишь просто
Андрей
07.06.2018
08:28:55
context.getSystemService("vibrator")
ну или что там тебе понадобилось
Za
07.06.2018
08:29:51
А, все. Нашел причину ошибки. Случайно не в тот блок вписал
Спасибо
OlegKrikun
07.06.2018
08:40:23
в андроидх.ктх запилили просто systemService() https://github.com/android/android-ktx/blob/3b47c7561c498c4e6be91fa46987f88f7e795a8e/src/main/java/androidx/core/content/Context.kt#L37
Quantum Harmonizer
07.06.2018
08:40:48
ага, спасибо им большое, 23+
Sergey
07.06.2018
08:42:39
все там будем )
OlegKrikun
07.06.2018
08:44:03
чот с просони не догоняю почему оно 23+
Quantum Harmonizer
07.06.2018
08:44:57
OlegKrikun
07.06.2018
08:45:35
а до 23 по строке?
Quantum Harmonizer
07.06.2018
08:45:50
+
OlegKrikun
07.06.2018
08:46:05
ясн, спс
Sergey
07.06.2018
08:52:54
скорей бы уже
там буквально пару мелочей приятных, на 5+ тоже неплохо
OlegKrikun
07.06.2018
08:54:16
одном проекте 15+, в другом 19+ =(
Anton
07.06.2018
08:54:39
нах 15 поддерживать)
OlegKrikun
07.06.2018
08:54:52
инерция
да и разницы обычно нет особой 15+ или 19+ (ну кроме всяких эйджкейсов и багов)
Google
Va
07.06.2018
09:05:11
Anton
07.06.2018
09:05:19
ага
а ты стату смотрел? много там у кого 15 ?
Va
07.06.2018
09:07:02
Quantum Harmonizer
07.06.2018
09:07:20
давайте всё-таки в тематический чат
DY
07.06.2018
09:34:01
кто-нибудь использует ktor-http-client? я правильно понял, что нормальной загрузки файлов (upload) там еще не сделали? ?
Andrew
07.06.2018
09:35:50
DY
07.06.2018
09:41:51
Vladimir
07.06.2018
09:48:03
DY
07.06.2018
09:48:38
Alexey
07.06.2018
09:54:19
Там не подвезли multipart request?
Andrew
07.06.2018
09:59:28
DY
07.06.2018
10:00:04
Mikhail
07.06.2018
10:04:10
если нужен простой http клиент - можете попробовать мой https://github.com/wizzardo/Tools/wiki/HttpClient
мультипарт умеет =)
DY
07.06.2018
10:05:21
хотелось nio с корутинами..
нативный для котлина