Используя socket.io и express, почему не работает мой метод io.on ('connection') - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь научить себя socket.io и node.js, следуя этому руководству: https://www.youtube.com/watch?v=tzNOqcoupWQ

Это код, написанный к концу тура:

const express = require('express');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);
const path = require('path');
const port = process.env.Port || 3000;

app.use(express.static(path.join(__dirname, 'public')));

app.set('view engine', 'ejs');

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');
})

server.listen(port, function(){
    console.log('Listening on port ' + port);

    io.on('connection', function(socket){
        console.log('User Connected! :)');

        //handle a new message
        socket.on('new:message', function(msgObj){
            io.emit('new:message', msgObj);
        });

        //handle a new member joining
        socket.on('new:member', function(name){
            io.emit('new:member', name);
        });
    })
});

Проблема в том, что, похоже, метод io.on ('connection' не проходит, и сообщение "Пользователь подключен!" Не выводится на консоль, но мой index.html загружается просто отлично (пока это просто простой заголовок).

Что я могу сделать, чтобы решить эту проблему?

[EDIT] Вот index.html

<h1>Hello, World!</h1>

1 Ответ

0 голосов
/ 11 сентября 2018

Возможно, вам потребуется включить сокет на стороне клиента. т.е. добавьте приведенный ниже код в ваш обслуживаемый html-файл.

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io();
</script>

Интеграция Socket.IO в документацию - хорошее место для начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...