使用PHP在Ubuntu 12.04上推送/扳手

时间:2014-04-09 01:17:31

标签: php pusher

我目前从via API获取大量数据的网站最近实施了Pusher以提供实时更新。然后,他们以多种语言链接到页面http://pusher.com/docs/client_libraries以获取客户端库。

因此链接到http://pusher.com/docs/client_libraries的PHP客户端库看起来很糟糕。

首先,Git repo(通过浏览器)不会下载所有内容,但一旦弄清楚它仍然无效。基本流程是使用App密钥连接到Psher服务器,然后订阅一个或多个频道,然后永久收听这些频道的更新。

连接似乎有效。订阅似乎有效。当我在其上使用var_export时,PHP库中的顶级对象会导致递归错误(太深)。这是我订阅频道后产生的对象:

Wrench\Payload\HybiPayload::__set_state(array( 'frames' => array ( 0 => Wrench\Frame\HybiFrame::__set_state(array( 'masked' => false, 'mask' => NULL, 'offset_payload' => 2, 'offset_mask' => 2, 'length' => 84, 'type' => NULL, 'buffer' => 'T{"event":"pusher:connection_established","data":"{\\"socket_id\\":\\"34937.7965561\\"}"}', 'payload' => '', )), ), ))

从那里等待来自频道的更新,当发生更新时,我得到以下内容:

Wrench\Payload\HybiPayload::__set_state(array( 'frames' => array ( 0 => Wrench\Frame\HybiFrame::__set_state(array( 'masked' => false, 'mask' => NULL, 'offset_payload' => 4, 'offset_mask' => 4, 'length' => 153, 'type' => NULL, 'buffer' => '~' . "\0" . '™{"event":"pusher:error","data":{"code":null,"message":"Pusher protocol versions <= 3 have been deprecated. Support will be removed after November 2013"}}', 'payload' => '', )), ), ))

array ( 0 => WrenchPusher\PusherMessage::__set_state(array( 'event' => 'pusher:connection_established', 'channel' => NULL, 'data' => stdClass::__set_state(array( 'socket_id' => '34937.7965561', )), )), 1
=> WrenchPusher\PusherMessage::__set_state(array( 'event' => 'connection_established', 'channel' => NULL, 'data' => stdClass::__set_state(array( 'socket_id' => '34937.7965561', )), )), 2
=> WrenchPusher\PusherMessage::__set_state(array( 'event' => 'pusher:error', 'channel' => NULL, 'data' => stdClass::__set_state(array( 'code' => NULL, 'message' => 'Pusher protocol versions <= 3 have been deprecated. Support will be removed after November 2013', )), )),

现在明显的问题是版本3的部分不受支持。该脚本在json_decode调用上失败,该调用期望一个字符串但正在获取一个对象。

尽管有几个谷歌搜索此事,但我还是找不到更新的库。

有没有人使用过更新的Pusher / Wrench PHP库?欢迎任何建议。

由于


2014年11月14日更新: Pusher的支持非常友好,需要2天的时间才能确认该库实际上已经破损。并告诉我他们不会做任何事情。因此,如果你想在PHP中使用Pusher客户端,那么你现在看起来运气不好。

我也知道Ruby并检查了该库。它看起来也很旧但我并没有花很多时间研究细节。在浪费了我在破坏的PHP库上的时间后,我认为Ruby也可能已经破坏了。 Pusher似乎更喜欢javascript。

0 个答案:

没有答案