将 PubNub 添加到聊天服务器
Adding PubNub to Chat Server
我希望将 PubNub 添加到我的聊天服务器以允许实时发送和接收消息。目前,服务器内置于 PHP 作为一系列 switch-case
操作。
然而,只需将实例化和订阅添加到服务器的顶部:
$pubnub = new Pubnub(
"key", ## PUBLISH_KEY
"key" ## SUBSCRIBE_KEY
);
// Subscribing to the main server channel
$pubnub->subscribe('MAIN_SERVER', function($message) {
//var_dump($message); ## Print Message
return true; ## Keep listening (return false to stop)
});
....
switch($action)
{
// Complete:
case "userLogin":
//error_log($username,0,"error.log");
if ($userId = authenticateUser($db, $username, $password, $gcmregid))
{
// Then they are a user, so yes, then in app, will call the "syncWithServer" action case
$out = json_encode(array('response' => SUCCESSFUL));
}
else
....
导致服务器超时:
PHP Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\Server\lib\Pubnub\Clients\DefaultClient.php on line 30
如何将 PubNub 集成到我现在的服务器中?
PHP 使用 PubNub 订阅循环
这是一个阻塞调用。您需要 运行 在 web-server 环境之外使用此方法。相反,您需要在命令行中 运行 您的脚本。您还需要使用 upstart
或类似的系统级别
来监视此过程
## Process Messages
function receive_and_process($message) {
switch($messge->action) { ... }
}
## This is BLOCKING
$pubnub->subscribe('MAIN_SERVER', function($message) {
receive_and_process($message);
return true;
});
您的开始命令将是 php my-php-server.php
。
我希望将 PubNub 添加到我的聊天服务器以允许实时发送和接收消息。目前,服务器内置于 PHP 作为一系列 switch-case
操作。
然而,只需将实例化和订阅添加到服务器的顶部:
$pubnub = new Pubnub(
"key", ## PUBLISH_KEY
"key" ## SUBSCRIBE_KEY
);
// Subscribing to the main server channel
$pubnub->subscribe('MAIN_SERVER', function($message) {
//var_dump($message); ## Print Message
return true; ## Keep listening (return false to stop)
});
....
switch($action)
{
// Complete:
case "userLogin":
//error_log($username,0,"error.log");
if ($userId = authenticateUser($db, $username, $password, $gcmregid))
{
// Then they are a user, so yes, then in app, will call the "syncWithServer" action case
$out = json_encode(array('response' => SUCCESSFUL));
}
else
....
导致服务器超时:
PHP Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\Server\lib\Pubnub\Clients\DefaultClient.php on line 30
如何将 PubNub 集成到我现在的服务器中?
PHP 使用 PubNub 订阅循环
这是一个阻塞调用。您需要 运行 在 web-server 环境之外使用此方法。相反,您需要在命令行中 运行 您的脚本。您还需要使用 upstart
或类似的系统级别
## Process Messages
function receive_and_process($message) {
switch($messge->action) { ... }
}
## This is BLOCKING
$pubnub->subscribe('MAIN_SERVER', function($message) {
receive_and_process($message);
return true;
});
您的开始命令将是 php my-php-server.php
。