【发布时间】:2014-10-10 13:06:49
【问题描述】:
我有一个使用 node.js 和 websocket.io 的简单 Websocket 服务器
var ws = require('websocket.io')
, server = ws.listen(8000);
server.on('connection', function (socket) {
console.log("connected");
socket.on('message', function (message) {
on_message_callback(socket, message);
});
socket.on('close', function () {
on_close_callback(socket);
});
});
这是客户端的主要部分:
const HOST = "wss://127.0.0.1:8000/";
var websocket = new WebSocket(HOST);
websocket.onopen = function(evt) { ... };
websocket.onclose = function(evt) { ... },
websocket.onerror = function(evt) { ... };
websocket.onmessage = function(evt) { ... };
(我已经使用wss://echo.websocket.org:443 对其进行了测试,并且可以正常工作)
根据需要适用于 HTTP 页面。问题是我也需要在 HTTPS 页面下工作。我无法“升级”我的代码以使其工作。谁能帮我?我还没有找到websocket.io 的任何教程(我想继续使用相同的技术)。
我也不确定如何处理证书。我只能生成自签名。这个案子怎么办?当我创建它们时,我必须将它们手动导入到每个浏览器中,这样它们才会允许这种通信?
谢谢。
【问题讨论】:
-
你需要使用 wss:// 协议而不是仅仅使用 ws://,但我想你已经知道了,那又是什么问题呢?
-
是的,当然,我使用“ws”代码作为我所拥有的示例。我需要 - 并且我自己无法弄清楚 - 是如何在我的服务器中实现安全的 wss 协议(使用 websocket.io - 或其他任何东西,这样我就不必更改客户端的代码)
-
@dakov - 正如 Dan 所说,您需要使用
wss。您应该提供您实际使用的代码,而不是错误的示例。 -
把一个字母改成'wss://...',现在是一模一样的代码(当然实现了回调函数)
标签: javascript node.js ssl websocket certificate