Socket.io 发射未定义
Socket.io emit is undefined
**我正在按照 YouTube 上的教程创建缩放克隆。在我们使用的项目中 socket.io 而我对 socket.io 完全陌生,只是在做项目时才知道这一点。因此,当我启动该程序时,它会抛出类型错误 socket.to(roomid).broadcast.emit('user-connected');
TypeError: Cannot read property 'emit' of undefined
并且我无法解决任何人都可以帮助我的问题。 **
Server/app.js
io.on("connection", socket => {
socket.on("join-room", (roomid) => {
socket.join(roomid);
socket.to(roomid).broadcast.emit('user-connected');
});
});
客户端JavaScript (script.js)
const socket = io("/");
const myVideo = document.createElement('video');
const videoGrid = document.getElementById("video-grid");
console.log(videoGrid);
let myVideoStream
navigator.mediaDevices.getUserMedia({
video: true,
audio: true
}).then(stram => {
myVideoStream = stram;
addVideoStream(myVideo, myVideoStream);
});
socket.emit("join-room", ROOM_id);
socket.on("user-connected", () => {
connectToNewUser();
});
const connectToNewUser = () => {
console.log("new user");
}
const addVideoStream = (video, stream) => {
video.srcObject = stream;
video.addEventListener('loadedmetadata', () => {
video.play();
});
videoGrid.append(video);
}
我在 room.ejs 中需要 socket.io 脚本。当我 运行 程序出现以下错误。
app.js 中的语法:
socket.to(roomid).broadcast.emit('user-connected');
应该是:
socket.broadcast.to(roomid).emit('user-connected');
**我正在按照 YouTube 上的教程创建缩放克隆。在我们使用的项目中 socket.io 而我对 socket.io 完全陌生,只是在做项目时才知道这一点。因此,当我启动该程序时,它会抛出类型错误 socket.to(roomid).broadcast.emit('user-connected');
TypeError: Cannot read property 'emit' of undefined
并且我无法解决任何人都可以帮助我的问题。 **
Server/app.js
io.on("connection", socket => {
socket.on("join-room", (roomid) => {
socket.join(roomid);
socket.to(roomid).broadcast.emit('user-connected');
});
});
客户端JavaScript (script.js)
const socket = io("/");
const myVideo = document.createElement('video');
const videoGrid = document.getElementById("video-grid");
console.log(videoGrid);
let myVideoStream
navigator.mediaDevices.getUserMedia({
video: true,
audio: true
}).then(stram => {
myVideoStream = stram;
addVideoStream(myVideo, myVideoStream);
});
socket.emit("join-room", ROOM_id);
socket.on("user-connected", () => {
connectToNewUser();
});
const connectToNewUser = () => {
console.log("new user");
}
const addVideoStream = (video, stream) => {
video.srcObject = stream;
video.addEventListener('loadedmetadata', () => {
video.play();
});
videoGrid.append(video);
}
app.js 中的语法:
socket.to(roomid).broadcast.emit('user-connected');
应该是:
socket.broadcast.to(roomid).emit('user-connected');