【问题标题】:A PHP Socket Server with Flash Clients带有 Flash 客户端的 PHP 套接字服务器
【发布时间】:2010-01-23 10:14:58
【问题描述】:

如何实现 PHP Socket Server,我使用的是 PHP5。

是否有现成的框架可供我使用,而不是深入了解实现细节的细节? 基本上我想使用这个 Socket Server 为 Flash 客户端提供服务,这将在 Apache 环境中运行。

这是我第一次涉足 PHP 领域,所以请考虑我是菜鸟。

【问题讨论】:

    标签: php sockets


    【解决方案1】:

    看看 Aleksey Zapparov 的 PHP Socket 服务器

    http://www.phpclasses.org/browse/package/5758.html

    将您自己的代码挂在上面非常简单。但请注意,您应该小心内存管理。如果您正在编写一个非常复杂的 OO 应用程序,那么您绝对应该安装循环引用检查垃圾收集器。而且,由于它使用 socket_select(),您不希望 ti 等待您的代码做某事的时间过长。

    或者(如果您在 Microsoft 平台以外的任何平台上运行)将 php 进程挂起 [x]inetd 并仅使用 stdio 进行通信可能更简单。

    HTH

    C.

    【讨论】:

    • 什么是内存管理,这个类对内存很重,什么是 HTH 和 C?
    • 客户端通常会连续连接,对 PHP 要求太多了吗?
    • HTH = 希望有帮助,C = 我,如果答案没有多大意义,那么您应该阅读 PHP 内存管理和垃圾收集,并确保在测试时监控内存使用情况你的应用程序。
    【解决方案2】:

    查看Zend_AMF(强调我的)

    Zend_Amf 提供对 Adob​​e 的 » 动作消息格式 (AMF) 的支持,以允许 Adob​​e 的 » Flash Player 和 PHP 之间的通信。具体来说,它提供了一个网关服务器实现,用于处理从 Flash Player 发送到服务器的请求,并将这些请求映射到对象和类方法以及任意回调。

    AMFPHP 作为替代。

    另外,请查看PHP Socket's API 并查看此IBM Article about Memory Management with PHP

    编辑 这不是服务器推送。 PHP 不太适合长时间运行的进程。如果您想要推送实现,请查看Comet 技术。

    【讨论】:

    • 它是基于套接字的吗?服务器可以向客户端推送消息吗,我希望客户端始终连接到服务器。
    • 就像它说的:处理从 Flash Player 发送到服务器的请求。对于长时间运行的进程或推送服务 atm,PHP 不是一个好的选择。搜索彗星
    • 由于我是 PHP 的菜鸟,我只是想知道为什么 PHP 不是长期运行或推送服务的好选择?
    • 因为运行时会开始泄漏内存。我已经用一篇关于内存管理的文章更新了答案。
    猜你喜欢
    • 2011-10-17
    • 2013-05-14
    • 2016-11-19
    • 2014-03-10
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 2014-11-05
    • 2015-06-01
    相关资源
    最近更新 更多