отказано в соединении для веб-сокета socket.io - PullRequest
0 голосов
/ 26 сентября 2018

Я загружаю свои скрипты, используя

<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script src="/js/chat.js"></script>

Мой скрипт chat.js:

var socket = io();

socket.on('connect', function(){
  var chatForm = document.forms.chatForm;
  if (chatForm) {
    var chatUsername = document.querySelector('#chat-username');
    var chatMessage = document.querySelector('#chat-message');

    chatForm.addEventListener("submit", function(e){
      console.log("working")
      //prevents page from reloading
      e.preventDefault();
      //emit the message with the socket
      socket.emit('postMessage',{
        username: chatUsername.value,
        message: chatMessage.value,
      });

      chatMessage.value='';
      chatMessage.focus();
    });//chatform event

    socket.on('updateMessages', function(data) {
      showMessage(data);
    });//update messages
  }//chatForm
})

function showMessage(data) {
  var chatDisplay = document.querySelector('.chat-display')
  var newMessage = document.createElement('p');
  newMessage.className = 'bg-success chat-text';
  newMessage.innerHTML = '<strong>' + data.username + '<strong>:</strong>' + 
    data.message
  chatDisplay.insertBefore(newMessage, chatDisplay.firstChild);
}

Мой файл app.js использует:

app.set('port', process.env.PORT || 3000 );


var server = app.listen(app.get('port'), function() {
  console.log('Listening on port ' + app.get('port'));
});

io.attach(server);

io.on('connection', function(socket) {
  console.log("user connected");
  socket.on('postMessage', function(data) {
    io.emit('updateMessages', data);
  });
});

Я получаю следующие ошибки в моей консоли и не знаю, как их исправить.Кто-нибудь, пожалуйста, помогите!enter image description here

Сервер прослушивает порт 3000. Моя консоль сообщает, что имеется необработанное событие «ошибка»

1 Ответ

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

В вашем файле app.js вы должны подключить socketIO перед прослушиванием:

const socketIO = require('socket-io');

const io = socketIO(app);

io.on('connection', function(socket) {
  console.log("user connected");
  socket.on('postMessage', function(data) {
    io.emit('updateMessages', data);
  });
});

app.set('port', process.env.PORT || 3000 );

app.listen(app.get('port'), function() {
  console.log('Listening on port ' + app.get('port'));
});

Давайте попробуем, потому что я думаю, что после прослушивания все не будет работать.Мы должны подключить socketIO перед прослушиванием.

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