1

現在、Laravel にリンクされたリアルタイム メッセージング システムを最も簡単な方法で構築する方法を考えています。

私がやろうとしていることは:

2 人のユーザー、A と B を想像してください。

  1. A が B にメッセージを送信すると、Laravel はこれをデータベースに保存し、新しいメッセージが利用可能であることをリアルタイム サーバーに通知します。
  2. リアルタイム サーバーは、これを B に通知します。
  3. B は、メッセージを取得する ajax 呼び出しを行います。

したがって、メッセージを直接送信する代わりに、新しいメッセージがあることをクライアントに通知するだけの本格的なリアルタイムメッセージングシステムよりも単純なものが必要です。

node.jsなどのサービスを使用してこれを達成することは可能でしょうか?

4

2 に答える 2

3

Node.js の代わりに Laravel と ReactPHP を使用してリアルタイム チャット アプリを作成するプロセスをカバーする Medium の記事があります

于 2013-11-03T21:53:32.407 に答える
-2

Accord Cloud Service を通知サービスとして使用することで、目的を達成できます。Accord は、リアルタイム アプリケーションを作成するための JSON に似た言語である ActiveML を使用します。

次の 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 を使用して通知を送信することもできます。クラウド サービスに telnet で接続し、ActiveML CLI を使用して同じことを行うこともできます。

上記の例では、「set string Msg」がクラウド サービスに送信されるたびに、そのアイテムに関心のあるすべてのクライアント ブラウザに Msg の値が変更されたことを通知します。その後、各ブラウザはページの更新に進みます。以下の例では、クライアント ブラウザは上記の Python プログラムから開始された通知/更新を受信し、テキストが入力されたことを示すアラートを表示します。

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

それをプレイするには、「ログイン」ボタンをクリックして無料の一時アカウントを作成し、指示に従ってください。

予想される同時クライアント数は、10、100、1000 以上ですか? 開示:私はAccord Software、Inc.で働いています。

于 2013-11-12T00:30:20.773 に答える