【发布时间】:2015-03-04 04:12:02
【问题描述】:
我有一个基于 socket.io 的 Websocket-Server,它应该从 php 应用程序获取通知。我找到了http://elephant.io/,这似乎是执行此操作的正确库。似乎大象.io 已针对作曲家进行了优化,因为如果没有它们,我找不到任何使用它的示例,并且通过我自己的尝试,我得到了无尽的错误,包括丢失的包含文件。
所以我第一次安装了composer,并且在lib\composer文件夹中安装了elephant.io包,所以这个库的所有文件都位于lib\composer\vendor\wisembly中。 http://elephant.io/#usage 的示例不起作用,因为客户端的构造函数不接受这些参数。它只有两个参数,第一个参数必须是 ElephantIO\EngineInterface 的实例,所以我尝试了以下方法:
error_reporting(E_ALL);
ini_set('display_errors', true);
require_once __DIR__ . '/lib/composer/vendor/autoload.php';
use ElephantIO\Client as Elephant;
use ElephantIO\Engine\SocketIO as Version1X;
$elephant = new Elephant(new Version1X('http://mywsserver.com:8000'));
$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`';
但它也不起作用:
Fatal error: Class 'ElephantIO\Engine\SocketIO' not found in C:\inetpub\wwwroot\test.php on line 11
我是作曲家的新手,但对我来说,这个系统似乎应该通过包含自动加载器文件来处理所有包含的东西。
我只想将通知从 php-app 发送到 socket.io 服务器,这似乎很难做到。我找到的唯一选择是https://github.com/rase-/socket.io-php-emitter,但这需要redis。我不喜欢这样,因为我使用的是 Windows,而我的应用程序不会从 redis 中获利,因为我只有一台服务器。
难道没有一种简单的方法可以做到这一点吗?我在使用 socket.io 之前使用了 phpws,这很有效,但是 socket.io 似乎是一个更好的解决方案,而不是我之前用作服务器的 .NET 库,所以我更愿意继续使用 socket.io。
【问题讨论】:
标签: php sockets websocket socket.io phpwebsocket