Autobahn-js 无法连接到棘轮服务器 (Wamp)
Autobahn-js failes to connect to Ratchet Server (Wamp)
我已经检查了很多问题和教程,并且正在关注来自 socketme 门户的官方文档。我在 XAMPP/Localhost 上 运行。
当我不使用 WAMP 接口时,Websocket 可以工作。否则,连接失败且不说明任何原因。
错误是:“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 RatcherRouter 的自定义实现(onMessage、onOpen 等),因此,我决定自己(非常糟糕)实现 Ratchet。
TL;DR: 切换到高速公路。
我已经检查了很多问题和教程,并且正在关注来自 socketme 门户的官方文档。我在 XAMPP/Localhost 上 运行。
当我不使用 WAMP 接口时,Websocket 可以工作。否则,连接失败且不说明任何原因。
错误是:“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 RatcherRouter 的自定义实现(onMessage、onOpen 等),因此,我决定自己(非常糟糕)实现 Ratchet。
TL;DR: 切换到高速公路。