【发布时间】:2020-09-19 07:29:11
【问题描述】:
我的网站在 IIS 10.0 (iisnode 0.2.21) / node/express 上的 https/ssl(有效 CA 证书)上运行。我在 https 服务器(相同端口)之上使用 websocket 服务器
但是,websocket 连接对于 CHrome 和 IE11 非常有效。它仅对 Firefox(80 版)失败,错误代码为 1006 (error details)
在 Inspector / Network 控制台中,它给出以下错误error as shown in network under inspector console
在 web.config 文件中,我添加了以下行
<webSocket enabled="false"/>
app.js 代码如下:
var cors = require('cors');
var createError = require('http-errors');
var cookieParser = require('cookie-parser');
const https = require("https");
// var app = express();
var app = require('express-ws-routes')();
.....
var wsRouter = require("./routes/wsRoute"); // route for Websocket
....
app.use('/ws', wsRouter);
....
app.listen(process.env.PORT || 443);
在我的 Websocket 路由中,我使用以下代码
router.websocket('/', function(info, cb, next) {
var connid = info.req.query.connid;
var pgid = info.req.query.pageid;
cb(function(socket) {
// socket is connected
socket.send(JSON.stringify({'response_type':'WSConnActive',
'response':{"status":"success","details":"Welcome Message","reqOrigin":"Home","welcomeMsg":'Hello '+usr+', Welcome! you are now connected!'}}));
....
socket.on('message', function incoming(message) { // handle message }
socket.on("close", function socketClose(ws){
console.log(info.req.query.usr+" closed session at "+moment().format("YYYY-MM-DD HH:mm:ss"));
var usrClose = info.req.query.usr;
...}
}); });
在客户端我连接
var socket = new WebSocket('wss://<host>:443/ws?request_type=init&usr='+UserID+'&connid='+connectTime+'&pageid='+page_ID);
除了 firefox 之外,所有这些都对 Chrome 和 IE11 正常工作
我不确定问题出在哪里.. 任何帮助表示赞赏!
【问题讨论】:
标签: node.js ssl firefox websocket