12 / 12 / 3
Регистрация: 28.03.2014
Сообщений: 156

Добавление сообщений в чат

15.01.2015, 13:19. Показов 1784. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть чат. Новые соощения в него добавляются так: кто-то на сервере добавил сообщение, с помощью GCM на андроид приходит уведомление о новом сообщении, я беру id сообщения(его прислал GCM) ,загружаю его и добавляю в начало списка. Все вроде хорошо, но проблема возникает когда пользователь с android-а отправляет сообщение. Если у юзера медленное интернет соединение, то уведомление приходит слишком поздно, и в это время его сообщения в чате не отображается. Я так понимаю что нужно добавить это сообщение в чат и отметить что оно в обработке, а после получения уведомления убрать эту отметку. Но как это реализовать?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.01.2015, 13:19
Ответы с готовыми решениями:

Чат/игра с записью сообщений/данных в БД
Приветствую. Подскажите пожалуйста по такому вопросу, как реализовать чат (или например игру), которые будут отправлять данные на...

Проверка и добавление новых сообщений в чат браузера автономно, средствами AJAX и PHP
Есть DIV куда выводятся все сообщения. <div id="chat_result" class="div_2_chat"> <? //Выводим данные чата из базы mysql ...

чат загрузка сообщений из бд
сделал чат(php mysql ajax) по книжке , сообщения каждые 3 секунды подгружаются из бд: <script> //При загрузке страницы...

10
28 / 28 / 10
Регистрация: 24.05.2013
Сообщений: 157
16.01.2015, 16:53
Для чатов WebSocket'ы используются, а не PUSH-рассылки.
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
16.01.2015, 17:31
В чатах используется websocket + push notification, если юзер онлайн передача сообщений происходит по сокету, иначе после включения инета придёт пуш.
Если у юзера медленное интернет соединение, то уведомление приходит слишком поздно, и в это время его сообщения в чате не отображается. Я так понимаю что нужно добавить это сообщение в чат и отметить что оно в обработке, а после получения уведомления убрать эту отметку. Но как это реализовать?
При отправке пользователем сообщения - в любом случае сперва следует его локально отобразить, с пометкой "отправка..", а после получения калбека от сервера, поменять отметку на "отправлено".
0
12 / 12 / 3
Регистрация: 28.03.2014
Сообщений: 156
16.01.2015, 17:48  [ТС]
Gabberr, чем плох мой способ?
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
16.01.2015, 17:57
Лучший ответ Сообщение было отмечено shulyakyarik как решение

Решение

Цитата Сообщение от shulyakyarik Посмотреть сообщение
Я так понимаю что нужно добавить это сообщение в чат и отметить что оно в обработке, а после получения уведомления убрать эту отметку.
Так и нужно, верно.
Реализовать очень просто - при отправке сообщения сразу добавляйте его в адаптер, у объекта Message создайте поле isSended и в зависимости от его значения отображайте сообщение с нужной пометкой.
0
12 / 12 / 3
Регистрация: 28.03.2014
Сообщений: 156
17.01.2015, 22:28  [ТС]
Gabberr, всмысле создать поле isSend? Принимаю я объекты в формате JSON
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
18.01.2015, 10:22
Должен быть класс-модель сообщения - Message, который будет строится из вашего json
0
12 / 12 / 3
Регистрация: 28.03.2014
Сообщений: 156
18.01.2015, 10:26  [ТС]
Gabberr, сделать объект в котором будет две переменные(isSended и JSON)? Можно ли парсить json в адаптере или правильнее будет туда уже готовые данные вставить?
0
 Аватар для Gabberr
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
18.01.2015, 10:42
В объекте message будет много полей в зависимости от сообщения, например тип сообщения, идентификатор, текст, ссылка на картинку итд. json, который приходит с сервера нужно сразу парсить в объект Message и дальше оперировать уже этим объектом
0
12 / 12 / 3
Регистрация: 28.03.2014
Сообщений: 156
18.01.2015, 22:48  [ТС]
Gabberr, вы случайно не знаете как после обновления объекта Message обновить элемент listView?

Добавлено через 20 минут
Пока что вызываю adapter.notifyDataSetInvalidated();
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
18.01.2015, 22:56
Цитата Сообщение от shulyakyarik Посмотреть сообщение
etInvalidated()
А почему не ...etChanged() ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2015, 22:56
Помогаю со студенческими работами здесь

Чат в виде списка сообщений
Здравствуйте. Суть программы: есть сервер "server 7575" к нему подключаются клиенты "client 127.0.0.1 7575 1 (2, 3, 4, ...)", в...

WCF-чат логика получения сообщений
Всего пару недель как познакомился с WCF. На работе попросили создать чат (аналог ICQ), для клиента использую Windows Forms на сервере...

VK API чат,сохранение и вывод сообщений
Есть такое приложение http://vk.com/app5081206 Его исходный код Index.html <html xmlns="http://www.w3.org/1999/xhtml"...

Асинхронный сервер - чат, много сообщений
вобщем сделал некое подобие чата, все вроде бы хорошо - отсылает/принимает сообщения нормально от множества клиентов придумал некую...

Корпоративный чат, вывод последних сообщений
Здравствуйте пишу чат и возникла проблема, написал запрос сообщения выводятся и группируются но к сожалению сортировка идет по первым...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru