首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel中实现一些实时消息

在Laravel中实现一些实时消息
EN

Stack Overflow用户
提问于 2013-11-03 21:47:26
回答 2查看 1.4K关注 0票数 1

目前,我正在研究如何以最简单的方式构建一个与Laravel连接的实时消息传递系统。

我想做的是:

想象两个用户,A& B。

  1. A向B发送一条消息,Laravel将其保存在数据库中,并通知实时服务器一条新消息可用。
  2. 实时服务器将此通知B。
  3. B执行ajax调用以获取消息。

因此,我只想要一个比成熟的实时消息系统更简单的东西,它不是直接发送消息,而是通知客户端有一条新消息。

这是否有可能使用某种服务、node.js或其他什么方式来实现?

EN

回答 2

Stack Overflow用户

发布于 2013-11-03 21:53:32

有一篇关于媒体的文章,介绍了用Laravel和ReactPHP而不是node.js https://medium.com/on-coding/eaa550829538制作实时聊天应用程序的过程,也许你可以在里面找到一些有用的东西。

票数 3
EN

Stack Overflow用户

发布于 2013-11-12 00:30:20

您可以通过使用协议云服务作为通知服务来实现您的目标。Accord使用ActiveML,一种类似于JSON的语言,用于创建实时应用程序。

下面的Python代码示例在客户端定义的“有趣”事件发生时向客户端浏览器发送通知。

代码语言:javascript
复制
#!/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远程访问云服务并完成相同的任务。

在上面的示例中,每次将'set string Msg‘发送到云服务时,它都会通知所有对该项感兴趣的客户端浏览器,Msg的值已经更改。然后,每个浏览器继续更新页面。在下面的示例中,客户端浏览器接收从上面的Python程序启动的通知/更新,并发出一个显示文本的警报。

代码语言:javascript
复制
    http://ac.accord.com/demo/notify.html

要玩它,创建一个免费的临时帐户,点击‘登录’按钮,然后按照指示。

您预期有多少并发客户,10,100,1000+?信息披露:我为雅阁软件公司工作。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19758561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档