Chrome浏览器无法build立websocket连接
我正在开发一个web应用程序,我包括websocket连接。 我用websocket( https://www.npmjs.com/package/websocket )安装了一个带有node.js(5.0.0)的websocket服务器。
在Chrome中,它完美的工作,但在Firefox中,这个消息出现在控制台中:
Firefox no puede establecer una conexión con el servidor en wss://www.my-dev-server.com:1337/.
(Firefox无法与…build立与服务器的连接)
这是服务器代码(基本上就是例子):
var WebSocketServer = require('websocket').server; var https = require('https'); var fs = require('fs'); var options = { key: fs.readFileSync('/keyfile.key'), cert: fs.readFileSync('/pemfile.pem') }; var port = 1337; // Create HTTPS service. var server = https.createServer(options, function(request, response) { console.log((new Date()) + ' Received request for ' + request.url); response.writeHead(404); response.end(); }); server.listen(port, function() { console.log((new Date()) + ' Server is listening on port ' + port); }); // create the server wsServer = new WebSocketServer({ httpServer: server, autoAcceptConnections: false }); function originIsAllowed( origin ) { // TODO: complete return true; } var clients = []; // WebSocket server wsServer.on('request', function(request) { if( !originIsAllowed( request.origin ) ) { request.reject(); console.log((new Date()) + ' Connection from origin ' + request.origin + 'rejected.'); return; } console.log((new Date()) + ' Connection accepted from ' + request.origin + '.'); var connection = request.accept(null, request.origin); clients.push(connection); connection.on('message', function( message ) { if (message.type === 'utf8') { console.log('Received Message: ' + message.utf8Data); } else if( message.type === 'binary' ) { } }); connection.on( 'error', function( error ) { }); connection.on('close', function( reasonCode, description ) { console.log((new Date()) + " Peer " + connection.remoteAddress + " disconnected."); }); });
我使用自签名证书进行开发,与Web服务器使用的相同。
这是我的客户代码:
var connection = new WebSocket('wss://www.my-dev-server.com:1337'); connection.onopen = function () { }; connection.onerror = function (error) { }; connection.onmessage = function (message) { /* some code here */ };
我终于find了解决办法。
问题是,对于HTTPS连接,在端口443,Firefox已经存储了一个未知证书的exception,而它需要另一个例外的wss(在这种情况下,端口1337)。
我已经在高级首选项中为此端口添加了一个证书exception,现在工作正常。
- JavaScript时区对于过去的夏令时转换规则是错误的
- 在Chrome和Firefox上,Socket.io无法向Node服务器发送消息
- 是否可以在Firefox扩展中embedded一个node.js服务器?
- Selenium-WebDriver如何使用JavaScript和Firefox浏览器突出显示元素
- 将node.jsembedded到Firefox扩展中并在浏览器中运行服务器
- 为什么在{{} + 1`在Chrome和Firefox中获得数字1,而在Node.js中使用' 1'?
- 更新到Angular 2后,无法通过Firefox上的Protractor运行Selenium
- 在收到指定内容范围的206后,Firefox不会请求更多的数据
- event.path未定义Firefox和vue.js