Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

захотелось сделать веб версию мессенжера

 

морда на реакте

бек на ноде(т.к. с ней немножко уже работал в связке с psql)

возник вопрос в хранении данных - с ws всё и так понятно, но где можно хранить остальной контент?

выбор между psql и mongodb

 

кто знает - посоветуйте: что подходит лучше к данной апликухе - реляционка/нереляционка(желательно с пояснением выбора той или иной технологии)?

 

p.s. тем, кто узнал этот макет -> чела, который его сделал - нет, копировать его кодяру я не буду, просто понравился макет

p.s.2 не пытаюсь сделать конкурента условной телеге т.к. бессмысленно - делаю для себя/попрактиковаться  

 

upd: возможно есть смысл использования и SQL/noSQL вместе(если есть конечно)

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

Siller__ сказал(а):

но где можно хранить остальной контент

Нажмите, чтобы раскрыть...

монга - связей не много (обычно есть какой то основной объект, и очень много слейв, и нужно по ним много и мучительно искать)

постгресс - обычная скл, можно и на ней

 

Бери то, что не знаешь:

 - все равно пет проект

 - скилуху подымешь

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Ну конкурента чему-либо ты врядли в одиночку сделаешь) 

А для учебы думаю подойдет то, что ты плохо знаешь и хотел бы узнать. Если использовал sql, то возьми nosql.

Mongodb сама по себе сложная, если прям саму бд изучать.

На чате много чему можно научиться, правда на языке, который не поддерживает потоки это как-то сурово.

Хранить можешь хоть в firebase каком-то впринципе. Там в основном кода много будет на фронте в не сложном чате.

Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Till_Its_Gone сказал(а):

Ну конкурента чему-либо ты врядли в одиночку сделаешь) 

Нажмите, чтобы раскрыть...

 

мне это и не надо

 

Till_Its_Gone сказал(а):

А для учебы думаю подойдет то, что ты плохо знаешь и хотел бы узнать. Если использовал sql, то возьми nosql.

Mongodb сама по себе сложная, если прям саму бд изучать.

Нажмите, чтобы раскрыть...

 

принял

 

Till_Its_Gone сказал(а):

На чате много чему можно научиться, правда на языке, который не поддерживает потоки это как-то сурово.

Нажмите, чтобы раскрыть...

 

php -> vk

думаю, ты понял)

 

Till_Its_Gone сказал(а):

Хранить можешь хоть в firebase каком-то впринципе. Там в основном кода много будет на фронте в не сложном чате.

Нажмите, чтобы раскрыть...

 

деплоить аппу буду на хероку 

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Siller__ сказал(а):

php -> vk

думаю, ты понял

Нажмите, чтобы раскрыть...

ну типа фейсбук тоже на пхп( а на деле там чуть-ли не с++ просто с синтаксисом пхп )

глупо равняться на технологии раскрученных приложений.

Да и забыл добавить, что если ты хочешь сделать чат с подходом, как телеграм, то там не вебсокеты =)

Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Till_Its_Gone сказал(а):

Да и забыл добавить, что если ты хочешь сделать чат с подходом, как телеграм, то там не вебсокеты =)

Нажмите, чтобы раскрыть...

да 

дуров снова взял лонг пуллинг

мне и интересно - зачем?

 

upd: я про версию веб версию если шо

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Siller__ сказал(а):

деплоить аппу буду на хероку

Нажмите, чтобы раскрыть...

так причем тут деплоить, это не мешает прикрутить авторизацию и хранение сообщений в файрбейз(вроде как). Но а так да, я бы взял монгу

Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Till_Its_Gone сказал(а):

так причем тут деплоить, это не мешает прикрутить авторизацию и хранение сообщений в файрбейз(вроде как). Но а так да, я бы взял монгу

Нажмите, чтобы раскрыть...

авторизация родная(самописная будет)

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Siller__ сказал(а):

да 

дуров снова взял лонг пуллинг

мне и интересно - зачем?

Нажмите, чтобы раскрыть...

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

Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Till_Its_Gone сказал(а):

нет там возможно вебсокеты на серве, но так как это мобильное приложение, то там не просто вебсокеты, так как это невозможно

Нажмите, чтобы раскрыть...

и с какого это перепугу "невозможно"?

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Siller__ сказал(а):

да 

дуров снова взял лонг пуллинг

мне и интересно - зачем?

 

upd: я про версию веб версию если шо

Нажмите, чтобы раскрыть...

не знаю что такое лонг пуллинг, но суть в том, что с обычными сокетами просто не будет работать приложение, когда телефон спит)

там должны быть пуш нотификации

Siller__ сказал(а):

и с какого это перепугу "невозможно"?

Нажмите, чтобы раскрыть...

потому что вебсокеты не работают, когда приложение спит)

Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Till_Its_Gone сказал(а):

не знаю что такое лонг пуллинг, но суть в том, что с обычными сокетами просто не будет работать приложение, когда телефон спит)

там должны быть пуш нотификации

 

потому что вебсокеты не работают, когда приложение спит)

Нажмите, чтобы раскрыть...

ну окehh.png(если это правда кншн)

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Siller__ сказал(а):

ну окehh.png(если это правда кншн)

Нажмите, чтобы раскрыть...

да, это так) там все идет через сервера эппла/гугла и операционку, которая слушает пуш уведомления

дуфник

Пользователь

Регистрация: 08.04.2013

Сообщения: 3971

Рейтинг: 2983

дуфник

Регистрация: 08.04.2013

Сообщения: 3971

Рейтинг: 2983

чекай prisma или hasura - сейчас самый топ

делаешь подписки на graphql, в чем хранить выбираешь сам - слой абстракции

Till_Its_Gone сказал(а):

не знаю что такое лонг пуллинг, но суть в том, что с обычными сокетами просто не будет работать приложение, когда телефон спит)

там должны быть пуш нотификации

 

потому что вебсокеты не работают, когда приложение спит)

Нажмите, чтобы раскрыть...

для этого нужны вебпуши и вебворкеры

Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

SPAHI4 сказал(а):

чекай prisma или hasura - сейчас самый топ

делаешь подписки на graphql, в чем хранить выбираешь сам - слой абстракции

Нажмите, чтобы раскрыть...

 

а в чем преимущество у gql над остальным(берем сугубо месаггер-аппликуху)?

 

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

SPAHI4 сказал(а):

чекай prisma или hasura - сейчас самый топ

делаешь подписки на graphql, в чем хранить выбираешь сам - слой абстракции

 

для этого нужны вебпуши и вебворкеры

Нажмите, чтобы раскрыть...

ну в браузере да

kosras

Пользователь

Регистрация: 10.03.2013

Сообщения: 930

Рейтинг: 232

kosras

Регистрация: 10.03.2013

Сообщения: 930

Рейтинг: 232

с чатами обычно монгу юзают,объяснить причину не могу, но имхо для чата sql банально оверкилл, с монгой работать проще.

у самого был fixed price проект реализовать чат за 2 месяца.

юзал nest.js(оч советую попробовать, самый топ фреймворк в node.js екосистеме), монгу и сокет ио офк(про логирование, тесты и т.д думаю и так ясно) 

Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

kosras сказал(а):

с чатами обычно монгу юзают,объяснить причину сам не могу, но имхо для чата sql банально оверкилл, с монгой работать проще.

Нажмите, чтобы раскрыть...

 

возможно, просто с монгой никогда не работал -> даже не представляю как это всё дело будет выглядеть

 

upd: это не означает что брать я монгу не буду, наоборот - тема интересна -> буду вкуривать

 

kosras сказал(а):

юзал nest.js(оч советую попробовать, самый топ фреймворк в нод джи ес екосистеме), монгу и сокет ио офк(про логирование, тесты и т.д думаю и так ясно) 

Нажмите, чтобы раскрыть...

 

на счет неста - наслышан, все хвалят, но хотелось бы больше с експресом разобраться 

энивей спасибо за ответ

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

Till_Its_Gone сказал(а):

не знаю что такое лонг пуллинг, но суть в том, что с обычными сокетами просто не будет работать приложение, когда телефон спит)

там должны быть пуш нотификации

Нажмите, чтобы раскрыть...

Пуш нотифай не подходит для реал-тайма, потому что приходят они по "погодному велению".

Till_Its_Gone сказал(а):

потому что вебсокеты не работают, когда приложение спит)

Нажмите, чтобы раскрыть...

делается служба, и все работает

Но опять не понятны притензии, если ТС ведет речь о веб-приложении.

Siller__ сказал(а):

ну окehh.png(если это правда кншн)

Нажмите, чтобы раскрыть...

юзай webrtc, там можно P2P делать, а значит и сервлесс-коннекты

SEREGA1995

Пользователь

Регистрация: 11.02.2013

Сообщения: 1948

Рейтинг: 423

SEREGA1995

Регистрация: 11.02.2013

Сообщения: 1948

Рейтинг: 423

img
Siller__ сказал(а):

захотелось сделать веб версию мессенжера

 

морда на реакте

бек на ноде(т.к. с ней немножко уже работал в связке с psql)

возник вопрос в хранении данных - с ws всё и так понятно, но где можно хранить остальной контент?

выбор между psql и mongodb

 

кто знает - посоветуйте: что подходит лучше к данной апликухе - реляционка/нереляционка(желательно с пояснением выбора той или иной технологии)?

 

p.s. тем, кто узнал этот макет -> чела, который его сделал - нет, копировать его кодяру я не буду, просто понравился макет

p.s.2 не пытаюсь сделать конкурента условной телеге т.к. бессмысленно - делаю для себя/попрактиковаться  

 

upd: возможно есть смысл использования и SQL/noSQL вместе(если есть конечно)

Нажмите, чтобы раскрыть...

mongo лучше, так как социалка и чатики много древовидных структур содержит, юзер -> друзья -> друзья друзей, юзер -> чаты -> cообщения...

 

в sql это превратится в кучу joinов что будет медленно если взлетит)

 

это если очень коротко)

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

saw_tooth сказал(а):

Пуш нотифай не подходит для реал-тайма, потому что приходят они по "погодному велению".

 
Нажмите, чтобы раскрыть...

И как ты отправишь сообщение, если у тебя закрыто приложение? Или вообще выключен дивайс?

Не понял насчет "погодного веления".

 

SEREGA1995

Пользователь

Регистрация: 11.02.2013

Сообщения: 1948

Рейтинг: 423

SEREGA1995

Регистрация: 11.02.2013

Сообщения: 1948

Рейтинг: 423

img
saw_tooth сказал(а):

Пуш нотифай не подходит для реал-тайма, потому что приходят они по "погодному велению".

делается служба, и все работает

Но опять не понятны притензии, если ТС ведет речь о веб-приложении.

юзай webrtc, там можно P2P делать, а значит и сервлесс-коннекты

Нажмите, чтобы раскрыть...

если будут групповые чаты, p2p не зайдет, ибо маршрутизация будет неподконтрольна, если два юзера мб еще и норм пообщаются, и то не факт, то группа превратится в ад, особенно если будет аудио / видео реалтайм

 

но webrtc крутая сама по себе, но сервак скорее всего пригодится полюбому и через него гонять

Till_Its_Gone

Пользователь

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

Till_Its_Gone

Регистрация: 14.04.2020

Сообщения: 562

Рейтинг: -2

Нарушения: 100

SEREGA1995 сказал(а):

mongo лучше, так как социалка и чатики много древовидных структур содержит, юзер -> друзья -> друзья друзей, юзер -> чаты -> cообщения...

 

в sql это превратится в кучу joinов что будет медленно если взлетит)

 

это если очень коротко)

Нажмите, чтобы раскрыть...

С каких пор джойны это медленно?

Siller__

Пользователь

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

Siller__

Регистрация: 31.10.2014

Сообщения: 1482

Рейтинг: 470

SEREGA1995 сказал(а):

mongo лучше, так как социалка и чатики много древовидных структур содержит, юзер -> друзья -> друзья друзей, юзер -> чаты -> cообщения...

 

в sql это превратится в кучу joinов что будет медленно если взлетит)

 

это если очень коротко)

Нажмите, чтобы раскрыть...

Поправьте если не прав т.к. с вопросом не сильно знаком, но вроде как graphql решает данный вопрос, не?

SEREGA1995

Пользователь

Регистрация: 11.02.2013

Сообщения: 1948

Рейтинг: 423

SEREGA1995

Регистрация: 11.02.2013

Сообщения: 1948

Рейтинг: 423

img
Till_Its_Gone сказал(а):

С каких пор джойны это медленно?

Нажмите, чтобы раскрыть...

ну если тебе надо сделать join на него еще один, и пока в первой табличке, 10000 в второй 100000 и в третьей 1000000 это ок, добавить нолик, привет оптимизациям, редисам, кешам и т.д. монга просто больше сможет сама собой работать, в какой-то момент и ей надо будет кеш слой или еще чего крутить, индексов еще понастроишь, памяти больше сожрешь, можно и на sql прекрасно сделать, просто больше проблем решить придется, большими ресурсами

Siller__ сказал(а):

Поправьте если не прав т.к. с вопросом не сильно знаком, но вроде как graphql решает данный вопрос, не?

Нажмите, чтобы раскрыть...

не, это просто фетчинг данных) типа не rest с http и fetch, а graphql