[英]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.