NodeJS не может подключить сокет - PullRequest
0 голосов
/ 02 июля 2018

Итак, я новичок в Node.js и следую некоторым учебникам. Я пытаюсь просто установить базовое сокетное соединение с Https, так как в учебнике использовались только https.

var express = require('express');
var app = express();
var fs = require('fs');
var https = require('https');
var privateKey  = fs.readFileSync(__dirname+'/key.pem', 'utf8');
var certificate = fs.readFileSync(__dirname+'/server.crt', 'utf8');

var credentials = {key: privateKey, cert: certificate};
var express = require('express');
var app = express();

// your express configuration here
var serv = https.createServer(credentials, app);

app.get('/',function(req, res){
    res.sendFile(__dirname+'/client/index.html');
});
app.use ('/client',express.static(__dirname+'/client'));
serv.listen(8080);
console.log('server started');

var io = require('socket.io')(serv,{});
io.sockets.on('connection', function(socket){
    console.log('socket connection');
});

Я никогда не вижу сокет соединения на консоли.

вот HTML

hello world
<script src="https://cnd.socket.io/socket.io-1.4.5.js"></script>
<script>
    var socket = io();
</script>

Есть идеи, что я здесь не так делаю? Socket.io поддерживает https?

1 Ответ

0 голосов
/ 02 июля 2018

Во-первых, если у вас есть экспресс, вам не нужен https для создания сервера.

Вот что вы можете сделать:

var express = require('express');  
var app = express();  
var server = require('http').createServer(app);  
var io = require('socket.io')(server);

io.sockets.on('connection', function(socket){
    console.log('socket connection');
});

Если вы запустите этот код, socket connection будет напечатано на консоли.

...