正在将 socket.io 客户端连接到 https
Connecting socket.io client to https
我正在尝试构建一个网络聊天应用程序,并希望通过 https 将我的客户端连接到 socket.io 服务器。
貌似一切正常,但客户端终究连接不上..
服务器代码:
var app = require('express')();
var fs = require('fs');
var options = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt')
};
var server = require('https').createServer(options, app).listen(3000,function(){
console.log("Https server started on port 3000");
});
var io = require('socket.io').listen(server);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log("Client connected");
/*....*/
});
连接服务器的客户端代码:
$(function($){
var socket = io.connect('https://localhost:3000', {secure: true});
.....
});
$(function($)..
当我将其设为 http 服务器时,它工作正常..
简单
var socket = io.connect('/', {secure: true});
编辑: 默认情况下 socket.io 将尝试在与网络服务器托管 Web 内容的同一主机上建立连接,因此无需指定 host/protocol/port . /
声明连接到默认命名空间。
我解决了问题..
因此,对于 http,如果您在客户端上以
开始您的脚本就足够了
$(function(){
....
});
但它不适用于 https。
我把它改成了
jQuery(function($){
....
})(jQuery);
很奇怪,但对我有用。
我正在尝试构建一个网络聊天应用程序,并希望通过 https 将我的客户端连接到 socket.io 服务器。 貌似一切正常,但客户端终究连接不上..
服务器代码:
var app = require('express')();
var fs = require('fs');
var options = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt')
};
var server = require('https').createServer(options, app).listen(3000,function(){
console.log("Https server started on port 3000");
});
var io = require('socket.io').listen(server);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log("Client connected");
/*....*/
});
连接服务器的客户端代码:
$(function($){
var socket = io.connect('https://localhost:3000', {secure: true});
.....
});
$(function($).. 当我将其设为 http 服务器时,它工作正常..
简单
var socket = io.connect('/', {secure: true});
编辑: 默认情况下 socket.io 将尝试在与网络服务器托管 Web 内容的同一主机上建立连接,因此无需指定 host/protocol/port . /
声明连接到默认命名空间。
我解决了问题..
因此,对于 http,如果您在客户端上以
开始您的脚本就足够了$(function(){
....
});
但它不适用于 https。 我把它改成了
jQuery(function($){
....
})(jQuery);
很奇怪,但对我有用。