我正在努力使socket.io
两者都工作http
and https
连接,但根据我当前的配置,它似乎只能在其中之一上工作。
使用以下配置选项,它可以通过以下方式访问我的应用程序https
,但是当尝试通过访问它时http
它无法连接并且我收到错误:
var app = express()
, http= require('http').createServer(app)
, https = require('https').createServer(options, app)
, io = require('socket.io').listen(https, { log: false })
后来我有这个:
http.listen(80, serverAddress);
https.listen(443, serverAddress);
在客户端我有这个:
<script src='/socket.io/socket.io.js'></script>
var socket = io.connect('https://<%= serverAddress %>', {secure: true, 'sync disconnect on unload' : true});
当然如果我切换http
与https
上的选项.listen
and .connect
服务器和客户端的功能分别我得到相反的结果,例如它可以通过访问http
并且不通过https
.
怎么可能做到这一点呢?我需要它主要是因为它与 Facebook 应用程序有关,所以它必须同时提供http
and https
根据 Facebook 规则的连接选项。
编辑:如果它有助于解决问题,我收到的错误是这样的:
Failed to load resource: the server responded with a status of 404 (Not Found) http://DOMAIN/socket.io/socket.io.js
正因为如此,我得到了其他诸如:
Uncaught ReferenceError: io is not defined