mysql — получать непрочитанные сообщения на конкретном канале pubnub php sdk

Цель: — получить непрочитанные сообщения на определенном канале.

Вход пользователя на сайт upitch.

Как только он перейдет на страницу сообщения, мы поддерживаем message_page_visited_count = 1

когда пользователь перенаправляет со страницы сообщения на любую другую страницу, которую мы обновляем message_page_visited_count = 0 и обновление отметки времени.

теперь для обновления метки времени мы используем функцию mysql strtotime("now") что-то вроде этого.

$this->Userlink->updateAll(
array('pubnub_time_stamp' => strtotime("now")), array('Userlink.id' => $loggedInUser)
); // updating timestamp for logged in user 1455687812

Какие обновления 1455687812 отметка времени из десяти цифр в нашей базе данных для вошедшего в систему пользователя.

Как обсуждалось с командой pubnub, команда pubnub сказала добавить 7 нулей к
правильный конец моей метки времени. Который превращается в 14556878120000000

я интегрировал php-sdk pubnub

include_once './vendor/autoload.php';
use Pubnub\Pubnub;
$publish_key   = publish_key
$subscribe_key = subscribe_key
$pubnub = new Pubnub($publish_key, $subscribe_key);

Я нашел способ реализовать историю примерно так.

history(
string $channel,
integer $count = 100,
boolean $include_token = null,
integer $start = null,
integer $end = null,
boolean $reverse = false)

Реализуя это:

$result= $pubnub->history(
"2242_2272_1116", //my channel
null,
true,
null,
14556878120000000, //endtime token with 7 zeros
null);
echo "<pre>";
print_r($result);die;

Печатая почему я получаю все сообщения ?? вместо того, чтобы получать сообщения после заданного токена?

Причина может быть в том, что добавление 7 нулей не принимается pubnub, если вы любезно предложите мне конвертировать мою метку времени (1455687812) в
токен пабнуба (17 цифр).

или, пожалуйста, укажите мне, что я делаю здесь не так?

Ваша помощь будет оценена заранее.

РЕДАКТИРОВАТЬ

Я получаю сообщения и их метки времени, как это ..
// TIMETOKENS И СООБЩЕНИЯ

14556879844588614  Really want some more levels
14556879769565496  The fact I can see
14556871094404310  Haunted
14556871091411782  Hello
14556870983775230  Hello

$result= $pubnub->history(
"2242_2272_1116",
null,
true,
null,
14556871094404310, null);
echo "<pre>";
print_r($result);die;

Я передаю маркер времени третьего сообщения, который 14556871094404310 и сообщение Haunted Теперь ожидаемый результат будет

14556879844588614  Really want some more levels
14556879769565496  The fact I can see

Зачем возвращать все сообщения вместо 2 сообщений?

Заметка: — На этот раз я не добавил никаких нулей и использовал первоначально сгенерированный timetoken от pubnub.

Даже делать этот также возвращаю все сообщения!

все еще не повезло.

2

Решение

Мы обсудили это в частном порядке в вашей заявке в службу поддержки, и это просто сводится к указанным вами временным токенам и параметрам, которые вы используете в API истории PubNub.

Указанный временный маркер не является точным временным маркером публикации искомого сообщения, поэтому результаты могут отличаться от ожидаемых.

См. Учебные документы PubNub PHP Storage для получения полной информации. а также обратитесь в службу поддержки PubNub для дальнейшей помощи.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]