store sockets in a map so controller can access them
This commit is contained in:
@@ -8,21 +8,22 @@ import { createRoomDto } from './dto/createRoom.dto';
|
||||
import { joinRoomDto } from './dto/joinRoom.dto';
|
||||
import { setCurrentRoomDto } from './dto/setCurrentRoom.dto';
|
||||
import { ChatGateway } from './chat.gateway';
|
||||
import { socketDto } from './dto/socket.dto';
|
||||
|
||||
@Controller('chat')
|
||||
export class ChatController {
|
||||
|
||||
constructor(
|
||||
private chatService: ChatService,
|
||||
private chatGateway: ChatGateway,
|
||||
) {}
|
||||
|
||||
private allowed_chars = '-#!?_';
|
||||
private escape_chars(str)
|
||||
{
|
||||
return str.split("").join("\\");
|
||||
}
|
||||
|
||||
constructor(
|
||||
private chatService: ChatService,
|
||||
private chatGateway: ChatGateway,
|
||||
) {}
|
||||
|
||||
|
||||
@UseGuards(AuthenticateGuard)
|
||||
@UseGuards(TwoFactorGuard)
|
||||
@@ -94,8 +95,11 @@ export class ChatController {
|
||||
async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req, @Res() res): Promise<object>
|
||||
{
|
||||
console.log("- in joinRoom controller");
|
||||
console.log("-- room_name", joinRoomDto.room_name);
|
||||
const response = await this.chatService.addUserToRoom(req.user.username, joinRoomDto.room_name);
|
||||
|
||||
let socket: socketDto = this.chatGateway.sockets.get(req.user.username);
|
||||
await this.chatService.socketJoinRoom(socket, joinRoomDto.room_name);
|
||||
|
||||
console.log("- out joinRoom controller");
|
||||
return res.status(HttpStatus.OK).json({ room_name: joinRoomDto.room_name, message: response });
|
||||
}
|
||||
@@ -107,6 +111,10 @@ export class ChatController {
|
||||
{
|
||||
console.log("- in changeRoom controller");
|
||||
const response = await this.chatService.setCurrentRoom(req.user.username, joinRoomDto.room_name);
|
||||
|
||||
let socket: socketDto = this.chatGateway.sockets.get(req.user.username);
|
||||
await this.chatService.socketChangeRoom(socket, joinRoomDto.room_name);
|
||||
|
||||
console.log("- out changeRoom controller");
|
||||
return res.status(HttpStatus.OK).json({ room_name: joinRoomDto.room_name, message: response });
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import { socketDto } from './dto/socket.dto';
|
||||
})
|
||||
|
||||
export class ChatGateway
|
||||
implements OnGatewayConnection, OnGatewayDisconnect
|
||||
implements OnGatewayConnection, OnGatewayDisconnect
|
||||
{
|
||||
constructor
|
||||
(
|
||||
@@ -16,15 +16,19 @@ export class ChatGateway
|
||||
private chatService: ChatService,
|
||||
) {}
|
||||
|
||||
sockets = new Map<string, socketDto>();
|
||||
|
||||
@WebSocketServer()
|
||||
server;
|
||||
|
||||
async handleConnection(client: socketDto) {
|
||||
console.log('- Client connected :', client.id, client.handshake.query.username);
|
||||
client.username = client.handshake.query.username.toString();
|
||||
async handleConnection(socket: socketDto) {
|
||||
console.log('- socket connected :', socket.id, socket.handshake.query.username);
|
||||
socket.username = socket.handshake.query.username.toString();
|
||||
this.sockets.set(socket.username, socket);
|
||||
}
|
||||
async handleDisconnect(client: socketDto) {
|
||||
console.log('- Client disconnected :', client.id, client.username);
|
||||
async handleDisconnect(socket: socketDto) {
|
||||
this.sockets.delete(socket.username);
|
||||
console.log('- socket disconnected :', socket.id, socket.username);
|
||||
}
|
||||
|
||||
@SubscribeMessage('join')
|
||||
|
||||
@@ -3901,7 +3901,6 @@ var app = (function () {
|
||||
});
|
||||
let data = await response.json();
|
||||
console.log(data.message);
|
||||
socket$1.emit('join', room_name);
|
||||
}
|
||||
async function change_room(room_name) {
|
||||
console.log("in change_room");
|
||||
@@ -3916,7 +3915,6 @@ var app = (function () {
|
||||
let data = await response.json();
|
||||
console.log(data.message);
|
||||
await get_room_messages();
|
||||
socket$1.emit('change', room_name);
|
||||
current_room_name.set(room_name);
|
||||
layout.set("room");
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -60,8 +60,6 @@ export async function join_room(room_name)
|
||||
});
|
||||
let data = await response.json();
|
||||
console.log(data.message);
|
||||
|
||||
socket.emit('join', room_name);
|
||||
}
|
||||
|
||||
export async function change_room(room_name)
|
||||
@@ -80,7 +78,6 @@ export async function change_room(room_name)
|
||||
console.log(data.message);
|
||||
|
||||
await get_room_messages();
|
||||
socket.emit('change', room_name);
|
||||
|
||||
current_room_name.set(room_name);
|
||||
layout.set("room");
|
||||
|
||||
Reference in New Issue
Block a user