【问题标题】:Node script wont run through https节点脚本不会通过 https 运行
【发布时间】:2014-05-21 07:58:52
【问题描述】:

我有一个问题,我的网站现在有 SSL 证书,但现在我的节点脚本没有运行。

node.js

var cs = require('./chatServer.js');
var ns = require('./notificationServer.js');
ns.start();
cs.start();

notificationServer.js

var io = require('socket.io').listen(3002,{log:false});
var sys = require('util');
var moment = require('moment');
function notificationStart(){
    io.sockets.on('connection', function(socket) {
        // my code
    });
}
exports.start=notificationStart;

聊天服务器.js

var io = require('socket.io').listen(3003,{log:false});
var sys = require('util');
var DBWrapper = require('node-dbi').DBWrapper; 
var DBExpr = require('node-dbi').DBExpr;
function chatStart()
{
    io.sockets.on('connection', function (socket) 
    {
        // my code
    });
}
exports.start = chatStart;

index.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript" src="https://mydomain.com:3003/socket.io/socket.io.js"></script>
<script type="text/javascript" src="web/controllers/js/myChat.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        var mychat = new myChat();
        mychat.init('name','channel', 't', true);
    });
</script>

myChat.js

function myChat(){
    var _this = this;
    this.chatServer;
    this.init = function(user, room, type, announce, publicChannel,window){
        _this.chatServer = io.connect('https://mydomain.com:3003');
        _this.chatServer.on('connect',function(){
            _this.chatServer.emit('adduser', user, room, type);
        });
    };
}

在终端:

节点 /my/path/node.js

当网站是 HTTP 时,node.js 可以工作,但现在不能使用 HTTPS 有谁知道我该如何解决这个问题?

【问题讨论】:

  • 您能否再描述一下实际问题?在什么情况下它不起作用?
  • with HTTP, with HTTPS@AndrewBarber
  • 您在那里发布了两次相同的链接。
  • 抱歉,编辑链接@AndrewBarber
  • 等待;愚蠢的问题:我注意到在你的屏幕截图上它连接到端口 3002,但你上面的脚本说 3003。可能是这样吗?

标签: javascript node.js ssl


【解决方案1】:

您的 socket.io 配置为使用 http 协议,而不是 https 协议。我很确定你是否改变(在 myChat.js 中):

io.connect('https://mydomain.com:3003');

作者:

io.connect('http://mydomain.com:3003');

它会起作用的。

(也检查你的端口)

要使用 HTTPS 协议配置 socket.io,请转到 here

我在 Google 上找到了:http://chrislarson.me/blog/ssl-nodejs-express-and-socketio

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-11-28
  • 2020-09-24
  • 2019-08-28
  • 2021-08-17
  • 1970-01-01
  • 2013-05-06
  • 2020-08-28
  • 1970-01-01
相关资源
最近更新 更多