2014-03-12 152 views
3

我正在使用Phalcon Framework的微應用程序功能在PHP中開發API。這個API包含接收GET,POST,PUT,DELETE請求,然後以JSON格式從MySQL數據庫返回結果(API可以訪問數據庫)。使用node.js向API發出請求

我正在開發一個phonegap +離子框架移動應用程序,我需要實時連接所有的移動用戶。例如聊天,從API返回信息,例如:使用API​​存儲和檢索所有配置文件信息,如姓名,電子郵件,年齡,生日等。

我的問題是,它的所有可能實現node.js在這裏使應用程序實時使用API​​來返回,插入,更新數據?我需要在用戶之間創建交互,例如:有人會實時向另一個用戶發送好友請求,如果請求的用戶接受請求,它使用api更新mysql數據庫,將用戶添加到好友列表。

我想使用API​​,因爲我不想給未來的開發人員,數據庫訪問。但性能是我的首要任務。

謝謝!

回答

3

Node.js是製作實時框架以將用戶鏈接到RESTful後端的不錯選擇。但是,您也可以考慮使用託管的實時消息傳遞服務(例如PubNub)來實時在用戶和PHP後端之間傳遞數據。

使用PubNub的PHP Api,你可以設置你的服務器偵聽事件:

$pubnub = new Pubnub(
    "demo", ## PUBLISH_KEY 
    "demo", ## SUBSCRIBE_KEY 
    "",  ## SECRET_KEY 
    false ## SSL_ON? 
); 
$pubnub->subscribe(array(
    'channel' => 'hello_world',  ## REQUIRED Channel to Listen 
    'callback' => function($message) { ## REQUIRED Callback With Response 
     ## Do all the awesome stuff your server does 
     return true;   ## Keep listening (return false to stop) 
    } 
)); 

現在,您的服務器訂閱您的頻道,你可以有你的客戶訂閱爲好,以監聽全局事件。我會從JavaScript SDK舉一個例子,但有每一個相當大的移動平臺的SDK,以及:

 var pubnub = PUBNUB.init({ 
     publish_key : 'demo', 
     subscribe_key : 'demo' 
    }) 

    function publish() { 
     pubnub.publish({ 
      channel : "hello_world", 
      message : "Bob added Stan as a friend" 
     }) 
    } 
})(); 

你也可以做到這一點在倒車時,播放從服務器到客戶端的消息。巴姆!

最終,您可能希望爲每個用戶擴展您的應用程序,使每個用戶能夠私下與服務器進行通信,並進行身份驗證;我們稱之爲PubNub Access Manager,它受到了很大的支持。

祝你好運!

+0

哇!這是我等待的答案!太好了!你有沒有任何關於如何使用PubNub將消息從服​​務器廣播到客戶端的例子? – Thyoity

+1

肯定的是,PHP SDK具有發佈功能,以及: '$信息= $ pubnub->發佈(陣列( '通道'=> '程序hello_world', '消息'=> ) '喂世界!' );'你可以找到更多的信息[這裏](https://github.com/pubnub/php) – drnugent

+0

這很好,所以我可以在我的移動應用程序中使用javascript實時獲取這些PHP推送的消息,對吧?我的服務器使用PHP,而我的移動應用使用JavaScript。我對麼? – Thyoity

相關問題