mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-14 20:40:21 +02:00
Add user activity
This commit is contained in:
+1
-1
@@ -53,6 +53,6 @@ const io = new socketio.Server(server, {
|
||||
});
|
||||
|
||||
app.set('socketio', io);
|
||||
io.on('connection', (socket) => sockets(socket));
|
||||
io.on('connection', (socket) => sockets(socket, io));
|
||||
|
||||
server.listen(9321, () => console.log(`Listening on port ${PORT}`));
|
||||
|
||||
+45
-9
@@ -1,15 +1,51 @@
|
||||
import { Socket } from 'socket.io';
|
||||
import { Socket, Server } from 'socket.io';
|
||||
|
||||
export const sockets = (socket: Socket) => {
|
||||
socket.broadcast.emit('user:connected', {
|
||||
userID: socket.id,
|
||||
username: socket.handshake.query.username,
|
||||
export const sockets = (socket: Socket, io: Server) => {
|
||||
socket.on('join', function (data) {
|
||||
socket.join(data.id); // We are using room of socket io
|
||||
});
|
||||
|
||||
socket.on('disconnect', () => {
|
||||
socket.broadcast.emit('user:disconnected', {
|
||||
userID: socket.id,
|
||||
username: socket.handshake.query.username,
|
||||
socket.broadcast.emit('user:receive:connect', {
|
||||
socketId: socket.id,
|
||||
userId: socket.handshake.query.id,
|
||||
userName: socket.handshake.query.username,
|
||||
});
|
||||
|
||||
socket.on('disconnect', async () => {
|
||||
socket.broadcast.emit('user:receive:disconnect', {
|
||||
socketId: socket.id,
|
||||
userId: socket.handshake.query.id,
|
||||
userName: socket.handshake.query.username,
|
||||
});
|
||||
});
|
||||
|
||||
socket.on('user:send:get_online', async (data) => {
|
||||
const sockets = await io.fetchSockets();
|
||||
const onlineSockets = sockets?.map((s) => s.handshake.query.id) || [];
|
||||
|
||||
io.sockets
|
||||
.in(data?.userId)
|
||||
.emit('user:receive:get_online', { online: onlineSockets });
|
||||
});
|
||||
|
||||
socket.on('user:send:change_song', async (data) => {
|
||||
socket.broadcast.emit('user:receive:change_song', {
|
||||
...data,
|
||||
user: { ...data.user, socketId: socket.id },
|
||||
});
|
||||
});
|
||||
|
||||
socket.on('user:send:status_idle', async (data) => {
|
||||
socket.broadcast.emit('user:receive:status_idle', {
|
||||
status: 'idle',
|
||||
user: { ...data.user, socketId: socket.id },
|
||||
});
|
||||
});
|
||||
|
||||
socket.on('user:send:status_playing', async (data) => {
|
||||
socket.broadcast.emit('user:receive:status_playing', {
|
||||
status: 'playing',
|
||||
user: { ...data.user, socketId: socket.id },
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user