如何在套接字的特定房间中的所有功能下面调用我成功创建了房间并通过connectToRoom函数将其加入,但是现在我想调用在服务器端发出的其他函数,但是我只收到打印出来的消息“您在房间里1“app.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res) {
res.sendfile('index.html');
});
io.on('connection', async (socket) => {
console.log('socket connected')
const userId = socket.id
// const emailId= await fetchemailId(socket); default room
io.sockets.adapter.rooms
socket.join(userId);
//Send this event to everyone in the room.
io.sockets.in("room-"+userId).emit('connectToRoom', "You are in room no. "+userId);
io.to(userId).emit('Image upload');
console.log(sockets.rooms)
io.to(userId).emit('progress', "Image is Uploading started Please Wait A minute");
io.to(userId).emit('error', "clients connected!");
});
http.listen(3000, function() {
console.log('listening on localhost:3000');
});
默认房间referenceindex.html
<!DOCTYPE html>
<html>
<head>
<title>Hello world</title>
</head>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on('connectToRoom', function (data) {
document.body.innerHTML = '';
document.write(data);
socket.on('error', function (data) {
document.body.innerHTML = '';
document.write(data)
});
socket.on('progress', function (data) {
document.body.innerHTML = '';
document.write(data)
});
</script>
<body></body>
</html>
最佳答案
在下面提到的一个功能中添加所有套接字代码
导入jquery
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
功能 $(document).ready(function () {
//socket.io code
});
关于node.js - 如何在socket.io的房间中从客户端调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64136132/