node.js - Socket.io 节点 - 反应连接错误
问题描述
由于某种原因,我无法连接到客户端上的套接字。记录套接字一直返回 False。我尝试了官方的 Socket.io 应用程序,它运行良好。任何人都可以帮助并让我知道我在这里缺少什么吗?
服务器
const app = require('express')()
const http = require('http').Server(app)
const io = require('socket.io')()
const router = require('./router')
const PORT = process.env.PORT || 8080
io.on('connection', (socket) => {
console.log('user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
})
})
app.use(router)
app.listen(PORT, () => {console.log(`Server running on port ${PORT}`)})
客户
import queryString from 'query-string'
import io from 'socket.io-client'
let socket;
const Chat = () => {
const ENDPOINT = 'http://localhost:8080'
useEffect(() => {
socket = io(ENDPOINT)
console.log(socket);
})
return (
<div>
Chat
</div>
)
}
export default Chat
解决方案
服务器正在侦听应用程序而不是 http.listen(...)
解决方案
你应该传入http
socket.io:
const io = require('socket.io')(http);
推荐阅读
- processing - 处理中的 MQTT 示例,发送到代理,订阅者没有任何内容
- java - Libgdx 数组迭代器
- reactjs - 材质 UI - 复制“必需”文本字段错误消息
- rsync - 当 uid/gid 不同时,rsync 如何保留所有权?
- nestjs - Nest CLI - main.hmr.ts 文件是什么?
- git - 新克隆项目的“未暂存更改”
- python - 在 Python 中,如何将函数应用于列表中的列表?
- ruby-on-rails - 使用 Devise 和 Mongoid 启动 Rails 5 项目
- jquery - 通过 jQuery AJAX 获取 xls 文件会中断文件
- bash - 如何在bash中列出名称中带有空格的子目录