文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP Socket IO

2024-02-27 20:33

关注

本篇文章介绍如何在 PHP 中实现 socket.io。


PHP 套接字输入输出

socket.io 库支持客户端和服务器之间的双向、低延迟和基于事件的通信。 可以在这里找到官方的 socket.io API,它是使用 Node.js 实现的。

socket.io 没有直接用 PHP 实现,因为它不是用 PHP 编写的。 我们可以使用 PHP 中的 Elephant.io 等 API,它为我们实现了 PHP 中的 socket.io。

Elephant.io 是一个用 PHP 编写的粗糙的 WebSocket 客户端,可以简化服务器和客户端之间的通信。 Elephant.io 至少需要 PHP 5.4 和 OpenSSL。

Elephant.io 已获得 MIT 许可。 Elephant.io 中使用的 Elephant.io 或 Socket.io 引擎的内置引擎是:

  1. Socket.io 5.x
  2. Socket.io 4.x
  3. Socket.io 3.x
  4. Socket.io 2.x
  5. Socket.io 1.x
  6. Socket.io 0.x

如何安装 Elephant IO

elephant.io 在 GitHub 上提供,可以使用 Composer 安装。 首先,确保您的 PHP 中安装了 Composer,如果没有,请先安装 Composer,然后按照下面描述的步骤操作。

  1. 转到composer链接。
  2. 单击下载选项。
  3. 下载 Composer-Setup.exe 文件。
  4. 运行 Composer-Setup.exe 文件。
  5. 为所有用户安装。
  6. 选择 php.exe 文件的路径。 点击下一步。
  7. 不要选择代理并单击下一步。
  8. 单击下一页上的安装。
  9. 安装完成后,单击“下一步”,然后单击“完成”。

以上步骤会在我们的Windows系统中安装好Composer,可以在cmd中运行 composer 命令查看。

现在我们需要用 php 命令运行 composer.phar 来安装 elephant.io,并在当前目录下安装 Composer.phar; 使用以下命令。


php -r "readfile('https://getcomposer.org/installer');" | php

此命令的输出将是:


C:\Users\Sheeraz>php -r "readfile('https://getcomposer.org/installer');" | php
All settings correct for using Composer
Downloading...

Composer (version 2.4.2) successfully installed to: C:\Apache24\htdocs\composer.phar
Use it: php composer.phar

C:\Apache24\htdocs>

安装 Composer 和 Composer.phar 后,让我们安装 Elephant.io。 运行以下命令。


php composer.phar require elephantio/elephant.io

上面的命令将安装 elephant.io,如果它抛出版本不兼容错误,则使用以下命令直接从 composer 安装它。


composer require elephantio/elephant.io:*

Elephant IO 安装的输出将是:

PHP Elephant IO

一旦安装了 Elephant IO 包,我们就可以使用它与套接字服务器进行通信。 这是一个例子。


<?php
require( __DIR__ . '/elephantio/elephant.io/lib/ElephantIO/Client.php');
use ElephantIO\Client as ElephantIOClient;

$Elephant_Client = new ElephantIOClient('http://localhost:8000', 'socket.io', 1, false, true, true);

$Elephant_Client->init();
$Elephant_Client->emit('action', 'delftstack');
$Elephant_Client->close();

echo 'trying to send `foo` to the event named action';

?>

在运行此代码之前,我们可能需要在端口 8000 启动服务器。在 cmd 中运行以下命令。


php -S localhost:8000

上面的代码将与套接字服务器通信,将数据 foo 发送到名为 action 的事件。 上述代码的输出是:


trying to send `foo' to the event called action

如果通信时间超过 30 秒,代码将抛出如下致命错误:


Fatal error: Maximum execution time of 30 seconds exceeded in C:\Apache24\htdocs\vendor\elephantio\elephant.io\lib\ElephantIO\Client.php on line 326

Elephant.io 不包含文档,但它提供了一些示例,我们可以从中了解套接字服务器通信。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯