0
私はノードjsのsocket.ioです。私の目標は、ルームを作成し、ルームイベントをサーバーに参加させ、ルームに参加した人にブロードキャストすることです。私は思った通りの部屋をつくっていますが、.to()
で何かを送ると動作しません。socket.ioのルームは動作しません
index.htmlを
<html>
<head>
<script src="/socket.io/socket.io.js"></script>
</head>
<body>
<label for="joinRoom"> Join room</label>
<form id="joinRoom">
<input id="room" /><button>Send</button>
</form>
<label for="createRoom"> Create room</label>
<form id="createRoom">
<input id="players" /><button>Send</button>
</form>
<script src="/client.js"></script>
</body>
</html>
client.js
const socket = io();
socket.on('test', (data) => console.log(data));
document.getElementById('joinRoom').onsubmit =() => {
socket.emit('joinRoom', document.getElementById('room').val());
return false;
};
socket.on('roomCreated', (id) => {
console.log(id);
//
});
document.getElementById('createRoom').onsubmit =() => {
socket.emit('createRoom', document.getElementById('players').value);
return false;
};
server.js
const express = require('express');
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io').listen(server);
app.use(express.static('public'));
server.listen(3000,() => {
console.log('listening...');
});
let currentRoomID = 0;
const rooms = [];
io.on('connection', (socket) => {
function joinRoom(room) {
socket.join(room.toString());
}
socket.on('createRoom',() => {
const roomID = currentRoomID++;
rooms[roomID] = `foo ${roomID}`;
joinRoom(roomID, socket.id);
io.sockets.emit('roomCreated', roomID);
socket.to(roomID.toString()).emit('test', rooms[roomID]);
});
socket.on('joinRoom', (room) => {
joinRoom(room, socket.id);
});
});