微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Autobahn-js 无法连接到 Ratchet Server (Wamp)

如何解决Autobahn-js 无法连接到 Ratchet Server (Wamp)

我已经检查了很多问题和教程,我正在关注 socketme 门户的官方文档。我在 XAMPP/Localhost 上运行它。

Websocket 工作,当我不使用 WAMP 接口时。否则连接失败,不说明原因。

错误是:“app.js:6200 WebSocket 连接到‘ws://localhost:8080/socket’失败:连接关闭无法访问”

服务器

$server = new \Ratchet\App('localhost',8080);
$server->route('/socket',new WebSocketHandler,array('*'));
$server->run();

WebSocketHandler 是 WampServerInterface 的基本实现,只包含抽象的方法,没有任何变化。

在客户端,我正在执行以下操作以尝试通过 autobahn-js 进行连接:

           var connection = new Autobahn.Connection({

            transports: [{
                type: 'websocket',port: 8080,host: 'localhost',url: 'ws://localhost:8080/socket'
            }],realm: 'realm1'
        });

        connection.onopen = function(session) {
            app.content = app.content + `connected!`
        };

        connection.onclose = function(reason,details) {
            app.content = app.content + `onclose!`
        }

        connection.open();

在这个实现中做错了什么,但我想不通。我尝试避免使用 ->route 方法并使用以下普通方法

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

但是,它没有用。

非常感谢任何帮助。

解决方法

您需要 Autobahn.js 0.8.2 才能将其连接到 Ratchet (WAMP v1),这是一个非常古老的实现,而且 ab 0.8.2 也非常古老。

您应该将您的工作导航到 Thruway。我尝试这样做,但找不到 Thruway RatcherRouter 的任何自定义实现(onMessage、onOpen 等),因此,我决定自己(相当糟糕)实现 Ratchet。

TL;DR:切换到高速公路。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?