我有一个在featherjs中制作的应用程序,我想用https运行。我已经得到了那个工作。我通过将'index.js'文件更改为如下所示:feathersjs - > socketio https请求不起作用
const fs = require('fs');
const https = require('https');
const app = require('./app');
const port = app.get('port');
const host = app.get('host');
//const server = app.listen(port);
const server = https.createServer({
key: fs.readFileSync('./certs/aex007.key'),
cert: fs.readFileSync('./certs/aex007.crt')
}, app).listen(port, function(){
console.log("Mfp Backend started: https://" + host + ":" + port);
});
只要我现在去例如邮递员'https://127.0.0.1/a_service_name',我接受证书后得到结果。当我在浏览器中访问该地址时,也会给出结果,证书指示为“红色”,因为它是自签名的。
所以我的问题是以下。当我在浏览器中访问'http://127.0.01'时,而不是'index.html'文件,我没有收到我的'套接字'信息,只有一个空白页。我得到以下错误控制台
信息:(404)路线:/socket.io/?EIO=3 &运输=轮询& T = LwydYAw - 没有找到 页
然后“的index.html”文件我用目前包含此:
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
<script type="text/javascript" src="//cdn.rawgit.com/feathersjs/feathers-client/v1.1.0/dist/feathers.js"></script>
<script type="text/javascript">
var socket = io('https://127.0.0.1:3001');
var client = feathers()
.configure(feathers.hooks())
.configure(feathers.socketio(socket));
var todoService = client.service('/some_service');
todoService.on('created', function(todo) {
alert('created');
console.log('Someone created a todo', todo);
});
</script>
有人能向我解释怎样做才能得到警告信息?
编辑2017年9月27日 我发现socket.io配置像
var https = require('https'),
fs = require('fs');
var options = {
key: fs.readFileSync('ssl/server.key'),
cert: fs.readFileSync('ssl/server.crt'),
ca: fs.readFileSync('ssl/ca.crt')
};
var app = https.createServer(options);
io = require('socket.io').listen(app); //socket.io server listens to https connections
app.listen(8895, "0.0.0.0");
在互联网上。然而需要feathers-socket.io在app.js不是index.js 。我想知道我能否改变这一点?
THanks。我试过这个,它的工作原理。我忽略了最后一行......接下来将在nuxtjs的客户端应用上实现https,但那是另一回事。 – Edgar