【问题标题】:Pubnub PHP Subscribe Functionpubnub PHP 订阅功能
【发布时间】:2025-12-15 21:30:01
【问题描述】:

我需要重大帮助!

我无法让 Pubnub 订阅功能与 PHP 一起使用!我可以让发布功能工作,但不能让订阅功能工作。我直接从 Pubnub 站点复制了一些代码,但我什么也没得到。有什么帮助吗?另外,我的 PHP 版本是 5.2.*。

代码:

<?
include("Pubnub.php");
$pubnub = new Pubnub(
    "not showing you",  // PUBLISH_KEY
    "not showing you",  // SUBSCRIBE_KEY
    "",      // SECRET_KEY
    false    // SSL_ON?
);
$pubnub->subscribe(array(
'channel' => 'Chat',
'callback' => create_function(
    '$message',
    'var_dump($message); return true;'
    )
));
?>

【问题讨论】:

  • 我们无法修复我们看不到的问题,也绝对无法诊断您未提供任何详细信息的问题。 “不起作用”是没用的。
  • 它只是给我随机错误,根本没有任何意义。我将添加一些我正在尝试修复的代码。
  • 也许这些错误对您没有任何意义,但它们会有一些意义,有助于诊断问题。请也发布它们。
  • 90% 的时间我得到“来自服务器的错误响应”,5% 的时间我得到“缺少频道”,另外 5% 的时间我得到一个空白页面,即使在之后我发送了一个值。你可以去这里亲眼看看。 scriptersunited.comeze.com/PubnubTest.php

标签: php html subscribe pubnub


【解决方案1】:

⚠️ ALERT:SDK 已升级⚠️

新 SDK 网址:https://github.com/pubnub/php

您正在询问一种在使用 PHP 作为动态处理语言的 Web 服务器(如 Apache)中使用订阅方法的方法。请注意,这不是一个好的做法,通常没有必要这样做。您不会在请求/响应中使用 Subscribe({...}) 方法。

使用 $pubnub->subscribe(...) 方法的正确方法是在一个长期存在的 PHP 进程中,不涉及 Web 服务器请求-响应模型。以下是一些确认有效的示例:

https://github.com/pubnub/php

请注意,当在 PHP 中使用 Subscribe API 时,假设每个示例都位于一个单独的 PHP 进程中在 Apache 等 Web 服务器之外。然而! Publish() API 可以在任何地方使用,包括 Apache Web 服务器。

使用 Apache PHP 阅读历史记录

作为替代方案,您会很乐意利用我们的 HISTORY API。您可以使用此查询队列中的消息并接收消息。这是一个 PHP History API 使用示例:

<?php

## Capture Publish and Subscribe Keys from Command Line
$publish_key   = "YOUR_PUBLISH_KEY";
$subscribe_key = "YOUR_SUBSCRIBE_KEY";

## Require Pubnub API
require('../Pubnub.php');

## -----------------------------------------
## Create Pubnub Client API (INITIALIZATION)
## -----------------------------------------
$pubnub = new Pubnub( $publish_key, $subscribe_key );

## Get History
echo("Requesting History...\n");
$messages = $pubnub->history(array(
    'channel' => 'hello_world', ## REQUIRED Channel to Send
    'limit'   => 100            ## OPTIONAL Limit Number of Messages
));
var_dump($messages);            ## Prints Published Messages.

?>

【讨论】:

  • 感谢您的回答!我现在正在使用历史,因为它非常有用。我想我现在会坚持我的 JavaScript 订阅。我会想办法让我的脚本完成我需要做的事情!
  • 你提供的链接失效了,有什么替代的吗?
【解决方案2】:

php subscribe 功能已损坏,将在即将推出的新 api 中修复,我最近与支持人员讨论过这个问题,他们给了我这个信息。

【讨论】: