Created
July 24, 2017 12:56
-
-
Save ognev-zair/b0ae08d6a516ac05d8cd7c81cc36babd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Предлагаем: 1. Сделать либу на яве, с функциями, которые будут дергаться из реакта, эта либа нам понадобится также в дальнейшем для версии pro. | |
[4:16] | |
2. Сделаем сервис, который будет работать в бекграунде, и через DeviceEmmiter (react) будем передавать евенты, когда придут сообщения туда-сюда(react-android-react) | |
[4:16] | |
3. Развернуть собственный сервер и имплементировать необходимый функционал на нем для бекграунда | |
[4:17] | |
Я закончил, жду критической оценки :slightly_smiling_face: | |
[4:19] | |
@dimmetrius предлагаюю обсудить функционал react-android-react, ты ведь уже разбирался с чатами. Прикинуть что нам будет нужно. | |
int64 [4:21 PM] | |
а на сколько долго будет получить тот же функционал, который уже сейчас есть? и как там с безопасностью? | |
[4:21] | |
libsignal вообще чисто создан для децентрализированной системы | |
ognev [4:22 PM] | |
http://www.hivemq.com/blog/mqtt-security-fundamentals-payload-encryption | |
HiveMQ | |
MQTT Security Fundamentals: MQTT Payload Encryption | |
This post explains why and when MQTT payload encryptions should be used, how it works and what the advantages and disadvantages are. | |
Jun 1st, 2015 at 12:00 PM | |
gritsay [4:22 PM] | |
поскольку в нашем варианте не пахнет децентрализованной системой (сообщения должны быть на сервере), этот вариант сразу отпадает | |
int64 | |
[4:23 PM] | |
ну это в данный момент да | |
[4:24] | |
надо смотреть по сложности, я очень много времени провозился с libsignal | |
[4:24] | |
но тут конечно же подгонка сервера и самой библиотеки под централизацию | |
[4:26] | |
а еще вопрос, как там с документацией? можете скинуть саму библиотеку на Java | |
ognev [4:27 PM] | |
https://github.com/eclipse/paho.mqtt.java (edited) | |
3 replies Last reply today at 4:31 PM View thread | |
ognev [4:27 PM] | |
https://github.com/mqtt/mqtt.github.io/wiki (edited) | |
gritsay [4:29 PM] | |
по скорости реализации надо смотреть комплексно | |
[4:29] | |
сервер - java -react | |
[4:29] | |
поэтому надо всем оцениться сейчас | |
[4:30] | |
скажу сразу что написание клиента для android не займет много времени | |
int64 | |
[4:30 PM] | |
я даже не знаю мне сложно сейчас оценить )) выглядит вроде не сложно, но тут наверное снова нужно будет заморочиться с сохранением ключей на сервере, а как на счет аттачментов? сейчас к примеру аттачменты храняться на Google Cloud Storage | |
gritsay [4:31 PM] | |
вот этот вопрос сейчс смотрим | |
anton | |
[4:31 PM] | |
:ok_hand: | |
gritsay [4:35 PM] | |
по поводу синхронизации в google аттачментов -> можно сделать метод на сервере, который и х все будет туда лить, как вариант | |
int64 | |
[4:35 PM] | |
ну да в принципе, это не долго в принципе даже сделать | |
[4:36] | |
но наверное нужна какая-то привзяка к attachmentId, т.е. эти аттачменты надо хранить опять же где-то, ну в принципе снова сервер отдельно можно накатить | |
[4:36] | |
документация у них выглядит намного лучше конечно | |
ognev [4:36 PM] | |
MQTT has an architected limit of 256MB for the message payload | |
1 reply Today at 4:37 PM View thread | |
gritsay [4:37 PM] | |
ждем мнения @mgrachev и @dimmetrius по этому вопросу | |
anton | |
[4:37 PM] | |
а что с протоколом из Aktor, ребят, | |
[4:37] | |
? | |
gritsay [4:38 PM] | |
не подходит само их решение | |
[4:38] | |
оно не гибкое | |
ognev [4:38 PM] | |
Актор кстати не подходит | |
int64 | |
[4:38 PM] | |
> MQTT has an architected limit of 256MB for the message payload | |
а зачем такой большое payload, если на Google Storage будут аттачменты, то это не проблема | |
gritsay [4:38 PM] | |
Заир лучше пояснит | |
[4:38] | |
он эту либу исследовал | |
int64 | |
[4:39 PM] | |
вообще может и лучше будет перейти сейчас на нее, с libsignal постоянно какие-то проблемы возникают, но тогда не понятно чем я вообще все это время занимался :)) | |
ognev [4:39 PM] | |
я запустил их семпл с гитхаба там 2 строки которая вызывает сдк, сдк в свою очередь уже открывает окна логина и чата. Эти окна | |
1. нельзя кастомизировать | |
2. нельзя использовать свои. | |
[4:40] | |
также сдк не дает никаких методов кроме запуска их активити и смены эндпоинта | |
[4:40] | |
в отличие от ios версии, там есть кастомизация вьюшек | |
alexzuev | |
[4:40 PM] | |
Это эктор? | |
ognev | |
я запустил их семпл с гитхаба там 2 строки которая вызывает сдк, сдк в свою очередь уже открывает окна логина и чата. Эти окна | |
1. нельзя кастомизировать | |
2. нельзя использовать свои. | |
Direct MessageToday at 4:39 PM | |
ognev [4:40 PM] | |
да | |
int64 | |
[4:41 PM] | |
а что вообще по функционалу в библиотеке имеется? | |
[4:42] | |
какие основные фичи | |
[4:42] | |
к пример сохранение истории все равно придется в ручную делать? | |
ognev [4:42 PM] | |
да, на серверной стороне надо подписаться к топику и прослушивать сообщения | |
[4:42] | |
и сохранять уже в любую базу данных на ваш выбор | |
int64 | |
[4:43 PM] | |
а статусы у сообщений? | |
[4:43] | |
ну т.е. получается пока, что такая же библиотека как libsignal | |
[4:44] | |
ну разве что наверное прослушивает сообщения по другому, не простой долбежкой сервера каждую минуту, как это в libsignal | |
gritsay [4:45 PM] | |
про статусы хороший вопрос, Андрей, смотрим | |
[4:45] | |
забыли этот момент | |
anton | |
[4:46 PM] | |
статусы сообщений, онлайн ли пользователь, функционал “is typing” | |
gritsay [4:49 PM] | |
Про статусы сообщений, нашел трехгодовалый пост на гитхабе https://stackoverflow.com/questions/19057835/how-to-find-connected-mqtt-client-details | |
stackoverflow.com | |
How to Find Connected MQTT Client Details | |
Is there any way we can find about all the connected client details(IP & name) from another client? I know there is a topic "$SYS/broker/clients/active" which gives the number of currently conn... | |
[4:49] | |
typing смотрим как реализовать | |
ognev [4:50 PM] | |
а про is typing это просто еще один event к которому подпишутся два или более юзера | |
1 reply Today at 4:51 PM View thread | |
gritsay [4:50 PM] | |
т.е. онлайн/офлант - возможно сделать, - задача серверного разработчика. | |
ognev [4:52 PM] | |
вот еще про статусы отправленных сообщений http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels (edited) | |
anton | |
[4:52 PM] | |
У меня сейчас вопрос о целесообразности введения нового протокола для лайт версии. | |
Какое у нас может быть расчётное время переезда? | |
gritsay [4:53 PM] | |
Резонный вопрос, правильный. | |
[4:53] | |
Предлагаю дождаться оценок react и серверного разработчиков (edited) | |
[4:54] | |
К тому же, то что мы сделаем сейчас, сразу подойдет для pro версии. | |
[4:55] | |
а если в лайт версии нужно ограничить функционал принципиально, так это пожалуйста. | |
[4:56] | |
нет проблем | |
[4:56] | |
урежем | |
anton | |
[5:01 PM] | |
Давайте тогда ещё раз напишем что нужно нам от @mgrachev Бенкенд и @dimmetrius реакт, а то я сам запутался уже | |
int64 | |
[5:05 PM] | |
от backend нужно будет сделать хранилище attachment'ов, я думаю подобное хранилище будет очень просто сделать | |
gritsay [5:08 PM] | |
также от backend нужно развернуть сервер сообщений на базе протокола mqtt, перечень либ тут https://github.com/mqtt/mqtt.github.io/wiki/libraries | |
[5:08] | |
Также посмотреть вопрос по статусу юзеров (активный/неактивный) | |
[5:09] | |
от @dimmetrius - обсудить что ему отдавать в реакт и что принимать от него. Но вещи, впринципе, очевидные. | |
mgrachev [5:26 PM] | |
Сделать хранилище attachments не долго, но вот поднять сервер - не могу даже назвать примерные сроки, т.к. не работал с этим. Но мне кажется это займет очень много времени. | |
gritsay [5:28 PM] | |
на чем бекэнд реализован? | |
[5:28] | |
язык программирования | |
[5:28] | |
@mgrachev | |
mgrachev [5:29 PM] | |
О чем идет речь? Я лишь посмотрел библиотеку для mqtt на Go и все. | |
[5:29] | |
Про какой бекэнд идет речь? | |
gritsay [5:30 PM] | |
понятно | |
[5:31] | |
а если поднять через docker? | |
[5:31] | |
https://github.com/flaviostutz/mosquitto | |
GitHub | |
flaviostutz/mosquitto | |
mosquitto - Docker container for MQTT Server Mosquitto. Open ports for Websockets and native MQTT connections. | |
mgrachev [5:32 PM] | |
За поднятие серверов у нас отвечает @kirill0v. Нужно у него спросить. | |
gritsay [5:32 PM] | |
Понял, спасибо, спросим | |
[5:34] | |
т.е. если сервер будет, то для бекенда останется у нас функционал - статуты контактов (онлайн/офлай), typing, Что я еще забыл? | |
int64 | |
[5:35 PM] | |
> typing | |
разем это backend? | |
ognev [5:35 PM] | |
впринципе это можно p2p сделать typing (edited) | |
int64 | |
[5:36 PM] | |
> Что я еще забыл? | |
аттачменты | |
gritsay [5:37 PM] | |
да |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment