2013-11-03 45 views
1

我目前正在計算如何以最簡單的方式構建與Laravel鏈接的實時消息系統。在Laravel中實現一些實時消息

什麼,我希望做的是:

試想2級的用戶,A & B.

  1. A發送消息給B和Laravel保存該數據庫,並通知實時服務器有新的消息可用。
  2. 實時服務器通知B這個。
  3. B通過ajax調用獲取消息。

所以我只想要一個比完全成熟的實時消息系統更簡單的東西,而不是直接發送消息只是通知客戶端有一條新消息。

這可能實現使用某些服務,node.js或其他?

回答

-2

您可以使用Accord Cloud Service作爲通知服務來實現您的目標。 Accord使用ActiveML,一種類似JSON的語言來創建實時應用程序。

以下Python代碼示例發送通知到客戶端瀏覽器時由客戶端所定義的「有趣」的事件發生。

#!/usr/local/bin/python 

import sys 
import socket 

if __name__ == '__main__': 

    # 
    # Connect with Accord Cloud Service using telnet port 
    # 

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    s.connect(("ac.accord.com", 23)) 
    data = s.recv(1024) 

    # 
    # Login with user and password 
    # 

    s.send("your-email-address-goes-here\n") 
    data = s.recv(1024) 
    s.send("your-password-goes-here\n") 
    data = s.recv(1024) 

    # 
    # Ensure Msg variable exists. 
    # 

    s.send("what is type of element Msg;\n") 
    data = s.recv(1024) 
    if data.startswith('error'): 
      s.send("create string Msg;\n") 
      data = s.recv(1024) 

    while (1): 
      print "Enter message to send to a browser: " 
      msg = sys.stdin.readline() 
      msg = msg[:-1] 
      print("set string Msg = \"%s\";\n" % msg) 
      s.send("set string Msg = \"%s\";\n" % (msg)) 
      data = s.recv(1024) 

    s.close() 

PHP,Perl,Java,C/C++等代碼與上面非常相似。如果需要,您還可以使用JavaScript從瀏覽器發送通知。您還可以使用ActiveML CLI遠程登錄到雲服務並完成相同的任務。

在上面的例子中,每一次「設置字符串消息」被髮送到雲服務,它會通知感興趣的是消息的價值,改變了項目的所有客戶端的瀏覽器。然後每個瀏覽器繼續更新頁面。在下面的例子中,客戶端瀏覽器接收到上面的Python程序啓動的通知/更新,並提示顯示輸入的文本。

http://ac.accord.com/demo/notify.html 

要玩它,通過點擊創建一個免費的臨時賬戶「登錄」按鈕,然後按照指示操​​作。

您預計有多少個併發客戶端,10,100,1000以上?披露:我爲Accord Software,Inc.工作