将 PHP 与 Socket.io 一起使用

2022-08-30 06:49:09

是否可以在客户端使用 Sockets.io,并与服务器上基于 PHP 的应用程序进行通信?PHP是否支持这种“长期连接”的代码编写方式?

我为 socket.io 找到的所有示例代码似乎都是针对服务器端的node.js,因此没有任何帮助。


答案 1

回答这个问题可能有点晚了,但这是我发现的。

我不想争论节点是否比php做得更好,这不是重点。

解决方案是:我没有找到任何PHP socket.io 的实现。

但是有一些方法可以实现WebSockets。有这个jQuery插件允许您使用Websockets,同时优雅地降级不支持的浏览器。在PHP方面,有一个类似乎是PHP WS服务器使用最广泛的类。


答案 2

如果你想将 socket.io 与php一起使用,这可能是你的答案!

项目网站:

elephant.io

他们也在github上:

https://github.com/wisembly/elephant.io

Elephant.io 提供了一个完全用PHP编写的 socket.io 客户端,应该在项目中的任何位置都可以使用。

它是一个轻巧且易于使用的库,旨在通过 socket.io 和websockets为PHP应用程序带来一些实时功能,这些功能无法在完整的javascript中完成。

来自项目网站的示例(通过php与websocket服务器通信)

php 服务器

use ElephantIO\Client as Elephant;

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

$elephant->init();
$elephant->send(
    ElephantIOClient::TYPE_EVENT,
    null,
    null,
    json_encode(array('name' => 'foo', 'args' => 'bar'))
);
$elephant->close();

echo 'tryin to send `bar` to the event `foo`';

套接字 io 服务器

var io = require('socket.io').listen(8000);

io.sockets.on('connection', function (socket) {
  console.log('user connected!');

  socket.on('foo', function (data) {
    console.log('here we are in action event and data is: ' + data);
  });
});

推荐