Ошибка Socket.io и express ERR_CONNECTION_REFUSED с приложением чата - PullRequest
0 голосов
/ 23 февраля 2020

Я следую учебному пособию по созданию игры «Каменные ножницы» с помощью чата с использованием socket.io и express. Я только делаю чат. Но я получаю сообщение об ошибке, которого нет в учебнике. Я не знаю, как это исправить. Я ищу в Google, но могу найти только очень сложные решения.

Ошибка, которую я получаю при попытке отправить сообщение: «ERR_CONNECTION_REFUSED». Вот мой код:

Индекс. html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chat</title>
</head>
<body>
    <div id="chatWrapper">
        <ul id="chatUl"></ul>
    </div>
    <div class="buttons">
        <form id="chatForm">
            <input id="chat"/>
            <button id="verstuur">Verstuur</button>
        </form>
    </div>

    <script src="/socket.io/socket.io.js"></script>
    <script src="client.js"></script>
</body>
</html>

Сервер. js

const http = require('http');
const express = require('express');
const socketio = require('socket.io');

const app = express();

const clientPath = `${__dirname}/../client`;
console.log(`Static van ${clientPath}`);

app.use(express.static(clientPath));

const server = http.createServer(app);

const io = socketio(server);

io.on('connection', (sock) => {
    console.log("Iemand is verbonden");
    sock.emit('message', "Hoi, je bent verbonden!");

    sock.on('message', () => {
        io.emit('message', text);
    });
});

server.on('error', (err) => {
    console.error("Server fout: " + err);
});

server.listen(8080, () => {
    console.log('Chat opgestard op 8080');
});

Клиент. js

const writeEvent = (text) => {
    // <ul> element
    const parent = document.querySelector('#chatUl');

    // <li> element
    const el = document.createElement('li');
    el.innerHTML = text;

    parent.appendChild(el);
};

const onFormSubmitted = (e) => {
    e.preventDefault();

    const input = document.querySelector('#chat');
    const text = input.value;
    input.value = '';

    sock.emit('message', text);
};

writeEvent('Welkom bij de chat!');

const sock = io();
sock.on('message', writeEvent);

document
    .querySelector('#chatForm')
    .addEventListener('submit', onFormSubmitted);

Любая помощь?

пс. Урок, которому я следую: https://www.youtube.com/watch?reload=9&v=xVcVbCLmKew
И извините за плохой английский sh

1 Ответ

0 голосов
/ 23 февраля 2020

Вы только что забыли формальный параметр функции (сервер. js):

io.on('connection', (sock) => {
    console.log("Iemand is verbonden");
    sock.emit('message', "Hoi, je bent verbonden!");

    sock.on('message', (/* variable here*/ text) => {
        io.emit('message', text);
    });
});

Также проверьте путь к своим файлам. "$ {__ dirname} /../ client" является правильным?

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