我得到两个错误:
- 连接被拒绝
- 未定义
io
const io = require("socket.io")(8000);
这就是我为JavaScript:公开Socket.io的方式
<script src="http://localhost:8000/socket.io/socket.io.js"></script>
在我的客户端JavaScript上,我插入了Socket.io.
const socket = io('http://localhost:8000');
我甚至尝试过这种方式。
const socket = io.connect('http://localhost:8000/');
但问题仍然存在。
这是我的服务器端代码。
const io = require('socket.io')(8000);
const users = {};
io.on('connection',socket=>{
socket.on('new-user-joined',name=>{
users[socket.id] = name;
socket.broadcast.emit('user-joined',name)
})
socket.on('send',message=>{
socket.broadcast.emit('recieve',message:message,name:users[socket.id]})
})
})
socket.on('disconnect',()=>{
socket.broadcast.emit('left',users[socket.id])
delete users[socket.id]
})
我甚至更改了端口号8080
,但这对我也没有帮助。我切换回端口8000
。我没有得到任何解决方案。我留下了这些错误,开始写剧本,过了一段时间,这些错误就消失了,我不知道怎么回事?过了一段时间,我再次面对这些错误。一段时间后,这些错误再次消失,这种情况在我身上发生了3到4次。
对于io is not defined issue
,将此添加到以下CDN:
<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>
<script src="http://localhost:8000/socket.io/socket.io.js"></script>
保留下面的localhost链接是一个更好的选择。
和
socket.on('disconnect'
事件应在io.on('connection'事件.内