Javascript 使用Ratchet web套接字时如何定义路由?

Javascript 使用Ratchet web套接字时如何定义路由?,javascript,php,sockets,zeromq,ratchet,Javascript,Php,Sockets,Zeromq,Ratchet,关于web套接字,我对这个领域还不熟悉。我正在尝试创建一个基于PHP的简单实时应用程序。我发现Ratchet是PHP的最佳选择之一,因为它简化了原生PHP套接字编程。我遵循了Ratchet官方网站上的“Hello world”教程。本教程是基础教程,它只是演示如何通过web浏览器控制台制作整个教程 根据教程,它提供了一个简单的shell脚本,我们需要执行该脚本,以便RatchetWebSocket作为服务与Apache服务器一起运行。下面是Shell脚本: use Ratchet\Server\

关于web套接字,我对这个领域还不熟悉。我正在尝试创建一个基于PHP的简单实时应用程序。我发现Ratchet是PHP的最佳选择之一,因为它简化了原生PHP套接字编程。我遵循了Ratchet官方网站上的“Hello world”教程。本教程是基础教程,它只是演示如何通过web浏览器控制台制作整个教程

根据教程,它提供了一个简单的shell脚本,我们需要执行该脚本,以便RatchetWebSocket作为服务与Apache服务器一起运行。下面是Shell脚本:

use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;

    require dirname(__DIR__) . '/vendor/autoload.php';

    $server = IoServer::factory(
        new HttpServer(
            new WsServer(
                new Chat()
            )
        ),
        8080
    );

    $server->run();
在上面的代码中,它表示可以通过
端口8080
访问web套接字。我转到浏览器,浏览器中的
localhost:8080
服务器正在运行,没有任何错误,浏览器中的浏览localhost:8080显示没有任何错误。我想一切都很顺利

下一步是从客户端建立连接,这可以通过在浏览器控制台中提供javascript代码来完成。(下面是javascript代码)

当我运行上面的代码时,连接是建立的,没有任何错误。现在的问题是我不知道把上面的JavaScript代码放在哪里,这样我就不必每次都在控制台中编写代码了。我想它应该保存在一些javascript文件中。以上代码在端口
localhost:8080
中工作。但是我如何才能明确地提到chat.php的链接
localhost:8080/chat.php
where chat.php将是浏览器中显示的所需页面,也许我可以将上述JavaScript代码放在同一个文件中


我不知道我的问题是否正确,我只是这个领域的初学者。我还问了另一个关于同一主题的问题,但尚未满意。

为了使用路由,您需要利用Ratchet内置的Symphony路由功能

基本上,您的套接字初始化如下所示

$app = new Ratchet\App("localhost", 8080, '0.0.0.0', $loop);
$app->route('/chat', new Chat, array('*'));

$app->run();
本教程将更详细地介绍PHP WebSocket的一些更简单的技巧


但是如何在:IoServer::factory(新的HttpServer(新的WsServer([…]))?对于任何使用最新版本Ratchet的人来说,这一切都发生了变化。正如奥斯卡上面提到的,这个答案现在已经过时了。有人知道如何使用最新版本进行路由吗?这些文件根本没有提到这一点。
$app = new Ratchet\App("localhost", 8080, '0.0.0.0', $loop);
$app->route('/chat', new Chat, array('*'));

$app->run();