|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
Современный чат на php с мгновенным получением сообщений12.10.2015, 19:05. Показов 7787. Ответов 12
Метки нет (Все метки)
Решил я создать чат.
Пользователь жмёт кнопку "Создать", получает уникально сгенерированную ссылку Даёт её кому угодно, все кто переходит по этой ссылке попадают в чат. Настройки чата (всякие пароли на вход в конкретный чат и прочее) доступны только создателю "комнаты" Все сообщения шифруются таким образом что не зная ключа - сообщения невозможно расшифровать. Читая трафик - нельзя понять какого вида активность ведёт пользователь/о чём общается Зная пароль - чат может удалить любой. Удаляя чат удаляются все сообщения/прикрепления чата и никаких логов IP не ведётся. Это мне кажется довольно удобным средством общения если необходима в некоторой степени защита информации. PHP уже во многом готов. Но возникли огромные проблемы в части визуализации. Кроме своей относительной функциональности чат должен быть удобным для пользователя. На данный момент всё ультра примитивно. После отправления сообщения страница попросту обновляется... Разумеется я решил что пора уже прикрутить интерактивность. Что бы диалог походил на привычный уже наверное всем ВК. То есть отправил сообщение один пользователь, получили все читатели конкретного чата. Моментально. Решил спросить у интернетов, что там и как... Я просто ох**л от того что творится в гуглах. Я тут новичёк, но я жуткий хардкорщик (наверняка это связано). Сторонние библиотеки я не переношу априори! Ну не то что бы я консерватор, но в проектах "для себя", я хочу понимать суть каждого символа в коде. Таким образом я лучше запоминаю информацию и достаточно быстро отлаживаю возникшие проблемы. Если речь идёт о каком нибудь jQuery скажем или о Bootstrap, то я в принципе и не против, несмотря на то что последнее призираю всячески. Но когда я спрашиваю поисковик о том как бы мне оживить чат, а получаю ответы вроде "Ну переходишь на node.js" / "Демона пишешь для начала" / "Подключаешь вот эту нонэйм библиотеку" / "Подключаешь вот ту небольшую библиотеку с тысячей миллионов строк" я достаю свой огнетушитель и тушу своё кресло. Так вот, кибер форум большой. Я думаю здесь найдётся какой нибудь не глупый человек который не любит сторонние библиотеки так же как Я, и посоветует мне что то годное. Какое то решение, прибегнув к которому я смогу мгновенно читать сообщения отправленные другими пользователями. Но без того что бы каждые n секунд обновлять что то. Сейчас мне очень нравится идея с сокетами. Вроде бы это неплохо. Но то что я вЫчитал просто удар кувалдой по голове! Насколько я понял, для сокетов необходимы "демоны"... Что мне можешь посоветовать ТЫ? Важно: Постарайтесь аргументировать свой ответ. AJAX с обновлением в n секунд? - Хорошо, почему? Сокеты? - Прекрасно! Почему именно они? Да даже та же node.js, обоснуйте своё мнение. Почему именно это должно мне помочь? Сразу скажу, контрольные тесты провожу на обычном хостинге от джино. Никаких VPS, типикал хост. Если вы считаете что я не прав насчёт сторонних библиотек и вообще я пищерный человек, вы конечно можете конструктивно покритиковать меня, но пишите это оффтопом. Подобные диалоги прошу вести в ЛС. Заранее благодарен тем, кто придёт мне на помощь. Добавлено через 8 минут P.s. Очень важно - Чат хранит всю историю сообщений в БД! Варианты с "Отправил, получил, перезагрузил - пусто" отпадают сразу же. Это я к тому что во всех примерах всё именно так. Просто знайте, сообщения хранятся в БД! А значит скорее всего и вытаскиваем их оттуда же. Но варианты с "Отправил сообщение, добавилось в БД, отобразилось у всех не из базы" допустимы. Просто учитывайте в своих ответах что данные должны храниться НЕ локально. Добавлено через 1 час 39 минут Бамп
1
|
|
| 12.10.2015, 19:05 | |
|
Ответы с готовыми решениями:
12
Проверка и добавление новых сообщений в чат браузера автономно, средствами AJAX и PHP чат загрузка сообщений из бд
|
|
36 / 36 / 18
Регистрация: 01.01.2015
Сообщений: 287
|
||
| 12.10.2015, 19:31 | ||
|
и какая дальнейшая судьба будет у продукта? какая лицензия на продукт?
0
|
||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
||
| 12.10.2015, 22:37 [ТС] | ||
|
Абсолютно бесплатный для всех сервис. Распространять код я НЕ буду. Но вполне возможно пару решений по шифрованию сообщений выложу в сеть если не найду ничего подобного. Добавлено через 1 час 39 минут Вопрос активен. Бамп.
0
|
||
|
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,912
|
||||
| 12.10.2015, 22:46 | ||||
|
Не по теме: Многобукаф, вопрос можно было в пару строчек уместить. Выбирайте, что вам больше нравится.
0
|
||||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 12.10.2015, 23:35 [ТС] | |
|
Сейчас я однозначно смотрю в сторону сокетов.
Мне нужны ответы на 3 вопроса: 1: На сокетах возможно сделать всё так же быстро, качественно и надёжно как на ноде? 2: Будет ли всё так же шустро и функционально? 3: Что типично для чатов?
0
|
|
|
36 / 36 / 18
Регистрация: 01.01.2015
Сообщений: 287
|
|||
| 13.10.2015, 12:25 | |||
|
0
|
|||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|||
| 13.10.2015, 13:45 [ТС] | |||
|
Добавлено через 5 минут Вопрос актуален. Кстати, я ведь правильно понимаю, нода ставится на VPS? Добавлено через 4 минуты evgenkur, И да, без обид. Просто надоели дауны которые любят что то одно (даже не важно php это/C#/питон или нода) и упорно стоят на том что их вариант лучший не понимая того что бывают разные ситуации и порой нужны разные решения. И возможно нода это слишком. Для того лишь что бы у меня в чате мгновенно сообщения обновлялись. Тем более когда почти весь код написан на PHP
0
|
|||
|
36 / 36 / 18
Регистрация: 01.01.2015
Сообщений: 287
|
||||
| 13.10.2015, 14:04 | ||||
![]() 2. Когда лист чистый, без разницы что изучать, решения на основе ноды либо другие готовые решения, реализующие вебсокеты. 3. Когда решаешь задачу (!=программируешь на пхп) нужно мыслить шире и быть готовым к тому что код может быть переписан, например с кривой реализации демона на пхп на серверный js. Можно писать с нуля, 2 года(+ время на изучения веб программирования в целом). Можно использовать готовые вещи и управится быстрее, после тщетных попыток написать с нуля ![]() + готовые велосипеды содержат меньше ошибок чем собственные. пример https://github.com/websockets/ws (сам лично не юзал, это что нашел гугл за минуту гугленья) нужно чтото одно выбрать и попробовать Добавлено через 4 минуты
0
|
||||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
||
| 13.10.2015, 14:19 [ТС] | ||
|
Ну evgenkur, читай внимательно:
И меня даже улыбнула твоя логика "Если этого нет на гитхабе - код дерьмо макаки" Получается ВК/твитер/ргхос - полная ни начто непригодная залупа? Хороший довод, для макаки. Ну и всё же. Что бы ты посоветовал для реализации на хосте? Быть может какая то подписка на события?
0
|
||
|
36 / 36 / 18
Регистрация: 01.01.2015
Сообщений: 287
|
|||||
| 13.10.2015, 14:26 | |||||
|
код дерьмо, а если его еще и нет на гитхабе то вдвойне. (если его пишет нуб, умножаем еще на два). я не знаю че это а значит залупа. (даже если есть техническая возможность - правила запретят, а админы хостинга забанят если сделать). (благо не я один в теме - есть выбор!)
0
|
|||||
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
||
| 13.10.2015, 15:16 [ТС] | ||
|
Итак, кто мне подскажет что за магия происходит здесь: http://jsfiddle.net/bv5Kq/13/ ?
0
|
||
|
36 / 36 / 18
Регистрация: 01.01.2015
Сообщений: 287
|
|
| 13.10.2015, 15:24 | |
|
Если ты тру пацан, то не открывай скрытый текст,
т.к. отстой не может давать ответ, и подожди пока ктонить не ответит. Кликните здесь для просмотра всего текста
Позор! Решение было таким простым! В примере используется сторонний сервис
0
|
|
|
-13 / 2 / 0
Регистрация: 14.08.2014
Сообщений: 240
|
|
| 13.10.2015, 15:40 [ТС] | |
|
В любом случае я ставил на хост чат выполненный в дизайне консоли и он был на JS с записью в файл.
Так вот, в этом чате было то что мне необходимо. И он спокойно себе стоял на обычном хосте. Жаль что хостинг был бесплатный и тот тестовый хост удалили за якобы фишинг... Если найду тот чат - оставлю ссылку здесь. Добавлено через 10 минут Лол, действительно. Даже в этом варианте используется подписка. jsfiddle.net/bv5Kq/13
0
|
|
| 13.10.2015, 15:40 | |
|
Помогаю со студенческими работами здесь
13
Чат в виде списка сообщений Чат/игра с записью сообщений/данных в БД Корпоративный чат, вывод последних сообщений
QUdpSocket чат. Отсылка/прием сообщений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|