簡體   English   中英

SOCKET.io 沒有監聽端口

[英]SOCKET.io not listening on a port

我在端口 3000 上有一個引用 socket.io 的腳本,它應該被監聽。 但是,當運行代碼時,我收到錯誤Failed to load resource:.net::ERR_CONNECTION_REFUSED當我嘗試訪問 URL 時發生同樣的事情,它說:無法訪問此站點

本地主機拒絕連接。 嘗試:

檢查連接 檢查代理和防火牆 ERR_CONNECTION_REFUSED

我的 heroku 應用程序也會彈出此錯誤。 那么有人可以幫助我嗎?

這是我的服務器代碼

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

const PORT = process.env.PORT || 5500;
const INDEX = '/index.html';

const server = express()

server.listen(PORT, () => console.log(`Listening on ${PORT}`))

server.use(express.static("public"))

server.get('/', (req, res) => {
    res.sendFile(`${__dirname}/index.html`)
})


const users = {}

io.on('connection', socket => {
  socket.on('new-user', name => {
    users[socket.id] = name
    if(name == "null"){
        socket.broadcast.emit('null-user', name)
        delete users[socket.id]
    }else{
    socket.broadcast.emit('user-connected', name)
    }
  })
  socket.on('send-chat-message', message => {
    socket.broadcast.emit('chat-message', { message: message, name: users[socket.id] })
  })
  socket.on('disconnect', () => {
    socket.broadcast.emit('user-disconnected', users[socket.id])
    delete users[socket.id]
  })
})

還有我的客戶端代碼

const messageContainer = document.getElementById('message-container')
const messageForm = document.getElementById('send-container')
const messageInput = document.getElementById('message-input')

const name = prompt('What is your name?')
appendMessage('You joined')
socket.emit('new-user', name)

socket.on('chat-message', data => {
  appendMessage(`${data.name}: ${data.message}`)
})

socket.on('user-connected', name => {
  appendMessage(`${name} connected`)
})

socket.on('user-disconnected', name => {
  appendMessage(`${name} disconnected`)
})

messageForm.addEventListener('submit', e => {
  e.preventDefault()
  const message = messageInput.value
  appendMessage(`You: ${message}`)
  socket.emit('send-chat-message', message)
  messageInput.value = ''
})

function appendMessage(message) {
  const messageElement = document.createElement('div')
  messageElement.innerText = message
  messageContainer.append(messageElement)
}
    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);


    http.listen(3000, function () {
    console.log('listening on *:3000');
    });

試試這個。 它在同一端口上同時使用 express 和 SocketIO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM