ここで例を実行しました: https://github.com/crossbario/crossbarexamples/tree/master/wss/python、すべて正常に動作します。
ただし、次のケースは機能しません。
config.json ファイル:
{
"controller": {},
"workers": [
{
"type": "router",
"realms": [
{
"name": "realm1",
"roles": [
{
"name": "anonymous",
"permissions": [
{
"uri": "*",
"publish": true,
"subscribe": true,
"call": true,
"register": true
}
]
}
]
}
],
"transports": [
{
"type": "web",
"endpoint": {
"type": "tcp",
"port": 9000,
"tls": {
"key": "server_key.pem",
"certificate": "server_cert.pem",
"dhparam": "dhparam.pem",
"ciphers": "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5:!DSS"
}
},
"paths": {
"/": {
"type": "static",
"directory": "../web"
},
"ws": {
"type": "websocket"
}
}
}
]
}
]
}
web/index.html ファイルは、TLS が機能するかどうかを確認するためのものです。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Router</title>
</head>
<body>
This is a router.
</body>
</html>
証明書を生成しました。 の Web サイトに接続すると、すべてが正常に機能しhttps://127.0.0.1:9000
ます。ページが正しく読み込まれます。
ただし、node.js で別のプロジェクトをセットアップして、何かを登録しようとしました.. (ページ読み込みカウントの例から取得したコード)
のコードserver.js
:
var connection = new autobahn.Connection({
url: 'wss://127.0.0.1:9000/ws',
realm: 'realm1'}
);
connection.onopen = function (session) {
console.log("connected to WAMP router");
app.session = session;
// REGISTER a procedure for remote calling
//
function get_visits () {
return app.visits;
}
session.register('com.example.get_visits', get_visits).then(
function (reg) {
console.log("procedure get_visits() registered");
},
function (err) {
console.log("failed to register procedure: " + err);
}
);
};
connection.onclose = function (reason, details) {
console.log("WAMP connection closed", reason, details);
app.session = null;
}
connection.open();
これでwss://127.0.0.1:9000/ws
ルーターの正しい URL になりましたが、常に次のメッセージが表示されます。
WAMP connection closed unreachable { reason: null,
message: null,
retry_delay: 1.8090544409276008,
retry_count: 1,
will_retry: true }
サーバーに接続できません。
いくつかの基本的な概念が私を逃れていると確信しています。おそらく、あなたは私を正しい方向に導くことができます.