
Ivan
14.05.2018
13:04:43

Cobaku
14.05.2018
13:49:38
Всем привет. Какие есть нормальные и удобные в работе библиотеки для WebSocket? По хорошему, что-либо легковесное (не спринговские ws). Akka для таких целей будет слишком жирной, да и суть акторов там не будет использоваться. Цель сервиса — брать из rabbitmq нужные мессаджи и пересылать их или всем юзерам, которые подключены по ws, или кому-либо одному. Пока глаз упал на https://github.com/TooTallNate/Java-WebSocket

Pavel
14.05.2018
13:49:59
и есть модуль для интеграции с rabbitmq

Google

Pavel
14.05.2018
13:51:45


1337
14.05.2018
13:57:32
дополняющий вопрос – спринговские ws могут использоваться с netty? у меня при добавлении их в classpath подгружается томкет по дефолту вместо нетти

Alexander
14.05.2018
13:58:49
да и вообще задачка выглядит пока что как чисто интеграционная

Loljeene
14.05.2018
14:01:17
А атмосферу сейчас никто не использует?

Митко Соловец?
14.05.2018
14:01:43
люди

Pavel
14.05.2018
14:02:18

Денис
14.05.2018
14:02:20
Судя по тому,как жарко в Питере, это не факт, что она ещё тут есть

Pavel
14.05.2018
14:02:30

Alexander
14.05.2018
14:02:40
https://github.com/Atmosphere/atmosphere

guga
14.05.2018
14:03:03

Loljeene
14.05.2018
14:03:06

Google

Loljeene
14.05.2018
14:03:41
Это вроде картинка с подписью про писос

Митко Соловец?
14.05.2018
14:03:54
это просто fat cat
у атмосферы неплохое апи
лучше вертикса

Pavel
14.05.2018
14:08:56

Alexander
14.05.2018
14:09:17
публичному апи в зубы не смотрят (с)

Pavel
14.05.2018
14:09:43
но если у тебя есть какие-то конкретные претензии и предложения по улучшения, то можно писать в dev лист или хотя-бы сюда

Митко Соловец?
14.05.2018
14:10:34

Pavel
14.05.2018
14:10:43

Vk
14.05.2018
15:29:25
https://tproger.ru/news/bayou-ai-write-java-code/ О_о

.
14.05.2018
15:30:33

Vk
14.05.2018
15:31:05
ждем ВИ, который напишет ИИ?

Nikita
14.05.2018
15:41:44
Есть у кого опыт возни с hprof? Есть явная утечка памяти, а понять откуда конкретно - не могу.

Mikhail
14.05.2018
15:43:41

Евгений
14.05.2018
15:51:26
а кто нибудь знает, почему идея проставляет каждый раз вот эту опцию?
к скала-компилятору
а потом все валится

Google

Евгений
14.05.2018
15:52:35
ты удаляешь ее, а она добавляет потом сама

Nikita
14.05.2018
15:52:49

Евгений
14.05.2018
15:57:24
пойду у скалистов спрошу

Ruslan
14.05.2018
17:11:49
забавно

Pavel ?
14.05.2018
17:33:54
Напиши багу

Alex
14.05.2018
18:18:59
ребятб как в Intellij активировать дополнение типа переменной? я пишу
app = new Main();
но ничего не происходит, тип app не дописывается в начало строки((

Евгений
14.05.2018
18:19:49

guga
14.05.2018
18:19:49
cmd + alt + v

Kirill
14.05.2018
18:20:41

guga
14.05.2018
18:20:53
у меня, на европейской, alt

Kirill
14.05.2018
18:22:34
2017 прошка топовая, российская версия, у меня option

Alex
14.05.2018
18:23:31
спс

Евгений
14.05.2018
18:24:08
как определить что у человека мак?
никак, он сам об этом расскажет

Ruslan
14.05.2018
18:46:02
работает прямо так же как с пользователем линукса

guga
14.05.2018
18:47:42

Ruslan
14.05.2018
18:50:28
смотрю на виндузятников свысока уже 15 лет

Никита?❄️
14.05.2018
18:50:47

guga
14.05.2018
18:51:16

Google

Никита?❄️
14.05.2018
18:51:47

Vladimir
14.05.2018
18:55:34
когда поток выходит из состояния ожидания после уведомления, захватывает ли он заново монитор объекта, для которого вызвал wait() ? т.е синхронизирован ли блок кода после wait() ? тест показал, что да, но хочется узнать, как на самом деле

Tolegen
14.05.2018
19:01:32

Ruslan
14.05.2018
19:02:00
а что считать православным?)
вот кто-то одному \r рад
не будем показывать пальцем

Tolegen
14.05.2018
19:03:09

Ruslan
14.05.2018
19:06:50
а давайте всех их соберем вместе, этих \r\n, \n, \r и запрем в одной комнате и не будем их выпускать пока они не выпустят новый единый стандарт для переноса строк

Vova
14.05.2018
19:10:34

Tolegen
14.05.2018
19:11:49

Vladimir
14.05.2018
19:12:59
спасибо. и еще сопутствующий вопрос - какова реальная причина необходимости использования цикла вместо условия в конструкции check-then-wait ( while(condition) wait() вместо if (condition) wait()) ?
я выяснил две:
- ложные пробуждения
- если более двух потоков "висят" на wait(), один из них может после выхода из ожидания изменить задачу так, что остальным нужно будет продолжать ожидать. e.g блокирующая очередь
а есть ли еще причины? мне что-то подсказывает, что тут замешан race condition. если да, то как? не могу уловить этот момент

Igor
14.05.2018
19:13:04

Tolegen
14.05.2018
19:18:16

Pavel ?
14.05.2018
19:20:53

Vladimir
14.05.2018
19:30:45
или же проверка count == 0 синхронизирована? если да, то это решает вопрос

Sergey
14.05.2018
19:35:05
ну проверка делается же после лока и перед анлоком..

Tolegen
14.05.2018
19:38:39
Просто вот ты зашёл в блок while и уснул
Как проснулся - нужно проверить ещё раз условие. Если оно не выполнилось то уснуть опять

Google

Tolegen
14.05.2018
19:39:35
Так вот - если поменяешь while на if то как проснёшься - просто выйдешь из блока, хотя условие все ещё true
Это просто семантически для логики приложения нужно. Сам цикл в синхронизированном блоке, никаких race там не будет

Vladimir
14.05.2018
19:41:24
т.е все действия, начиная от count == 0 до конца dequeue() осуществляются при локе? как только один из потоков выходит из ожидания, он сразу же захватывает лок, проверяет count, выполняет dequeue(), снимает лок, и только после этого второй поток сможет снова проверить while, заняв лок? не могут ли N потоков при пробуждении одновременно проверить count == 0 ?
я понимаю, что нужно совершить вторую проверку, потому что могут произойти изменения, после которых нужно будет уснуть (например, из-за нехватки данных в очереди).

Kema
14.05.2018
19:51:13
Ребят, подскажите, какая максимальная длина условия у if?

guga
14.05.2018
19:51:53

Kema
14.05.2018
19:52:47
Просто интересно стало, сколько можно в скобочки if(....длина максимальная...) засунуть

Ruslan
14.05.2018
19:58:05
вопрос с подвохом?

Kema
14.05.2018
19:58:39
Да нет, просто в голову взбрело

Victor
14.05.2018
20:00:39
Да сколько угодно, лишь бы размер метода в байткоде не превышал 64 кб.

Quantum Harmonizer
14.05.2018
20:01:30
В байт-коде или в исходнике?

Vladimir
14.05.2018
20:02:31