Цель: — получить непрочитанные сообщения на определенном канале.
Вход пользователя на сайт 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.
Даже делать этот также возвращаю все сообщения!
все еще не повезло.
Мы обсудили это в частном порядке в вашей заявке в службу поддержки, и это просто сводится к указанным вами временным токенам и параметрам, которые вы используете в API истории PubNub.
Указанный временный маркер не является точным временным маркером публикации искомого сообщения, поэтому результаты могут отличаться от ожидаемых.
См. Учебные документы PubNub PHP Storage для получения полной информации. а также обратитесь в службу поддержки PubNub для дальнейшей помощи.
Других решений пока нет …