Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 套接字不在HTTPS上工作,但在HTTP | Socket.io上工作_Node.js_Laravel_Redis_Socket.io - Fatal编程技术网

Node.js 套接字不在HTTPS上工作,但在HTTP | Socket.io上工作

Node.js 套接字不在HTTPS上工作,但在HTTP | Socket.io上工作,node.js,laravel,redis,socket.io,Node.js,Laravel,Redis,Socket.io,我已经在我的服务器上配置了套接字设置,它可以正确使用HTTP,但不能使用HTTPS 我尝试了所有的解决办法,但没有成功。 我已经通过执行以下命令生成了密钥和证书文件: openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt 然后: var options = {

我已经在我的服务器上配置了套接字设置,它可以正确使用HTTP,但不能使用HTTPS

我尝试了所有的解决办法,但没有成功。 我已经通过执行以下命令生成了密钥和证书文件:

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt
然后:

 var options = {
      key: fs.readFileSync('./key.pem', 'utf8'),
      cert: fs.readFileSync('./server.crt', 'utf8')
   };
但它给了我一个错误: Server.js

var express = require('express'); //Node
var httpsapp = express();//Node 
var httpapp = express(); //Node 
fs = require('fs'); //
var ip = require("ip");
var underscore = require("underscore");
var _ = require('lodash');


options = {
    key: fs.readFileSync('./key.pem'),
    cert: fs.readFileSync('./server.crt')
}

http = require('http').createServer(httpapp)
httpsserver = require('https').createServer(options, httpsapp);
io = require('socket.io').listen(http);

var Redis = require('ioredis');

var redis = new Redis();
redis.subscribe('chatMessage','deleteMessageHard');

redis.on('message', function (channel, message) {
        console.log( ip.address() );


        if (channel == 'chatMessage') {
            io.emit('messageFound', {
                message: message
            });
        }
        console.log(channel);
        if (channel == 'deleteMessageHard') {
            io.emit('deleteHardChatFound', {
                message: message
            });
        }
    });

var connectedUsers = [];
var connectedUsersObj = {};
io.on('connection', function (socket) {

    //Login
    socket.on('login', function (data) {
        var user_id = parseInt(data.id);
        var user =  {   
                        "user_id": data.id,
                        "socket_id"  : socket.id,
                    }
        connectedUsers.push(user);
    });


    //Logout
    socket.on('disconnect', function(){
        var User = _.find(connectedUsers, {socket_id: socket.id});
    });

    socket.on('Typing', function (message) {
        var TypingFire = true;
        console.log('Typing Event Found');
        console.log(message);
        //io.emit('TypingFire', message);
        socket.broadcast.emit('TypingFire', message);
    });

    socket.on('stopTyping', function (message) {
        var TypingOff = true;
        console.log('stopTyping Event Found');
        //socket.emit('TypingOff', message);
        socket.broadcast.emit('TypingOff', message);
    });
});

httpsserver.listen(3002,'0.0.0.0'); //HTTPS
http.listen(3005,'0.0.0.0'); //HTTP
socket.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Socket</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
    <h1>HI</h1>
    <input type="text" id="Typing">
    <script>
        var socket = io('https://18.222.8.81:3002');

        $("#Typing").keyup(function(){
            socket.emit('Typing', { hello: 'world' });
        });

        socket.on('messageFound', function (data) {
            console.log(data);
        });
    </script>
</body>
</html>

插座
你好
变量套接字=io('https://18.222.8.81:3002');
$(“#键入”).keyup(函数(){
emit('Typing',{hello:'world'});
});
socket.on('messageFound',函数(数据){
控制台日志(数据);
});

我不知道这里面少了什么。任何帮助都将不胜感激


单击控制台窗口中的三角形时会显示什么?您指的是圆0()@遥远的奎兹隆left@Quezler我在上面的问题中添加了一个屏幕截图,您是否也可以共享网络选项卡的输出?