Refactoring admin messages
This commit is contained in:
parent
b1d4af005e
commit
d1222e4440
5 changed files with 51 additions and 16 deletions
|
@ -9,7 +9,7 @@ import {
|
||||||
PusherToBackMessage,
|
PusherToBackMessage,
|
||||||
ServerToAdminClientMessage,
|
ServerToAdminClientMessage,
|
||||||
ServerToClientMessage,
|
ServerToClientMessage,
|
||||||
SubMessage
|
SubMessage, UserJoinedRoomMessage, UserLeftRoomMessage
|
||||||
} from "../Messages/generated/messages_pb";
|
} from "../Messages/generated/messages_pb";
|
||||||
import {CharacterLayer} from "_Model/Websocket/CharacterLayer";
|
import {CharacterLayer} from "_Model/Websocket/CharacterLayer";
|
||||||
import {AdminSocket} from "../RoomManager";
|
import {AdminSocket} from "../RoomManager";
|
||||||
|
@ -23,13 +23,25 @@ export class Admin {
|
||||||
|
|
||||||
public sendUserJoin(uuid: string, name: string, ip: string): void {
|
public sendUserJoin(uuid: string, name: string, ip: string): void {
|
||||||
let serverToAdminClientMessage = new ServerToAdminClientMessage();
|
let serverToAdminClientMessage = new ServerToAdminClientMessage();
|
||||||
serverToAdminClientMessage = serverToAdminClientMessage.setUseruuidnamejoinedroom(uuid+';'+name+';'+ip)
|
|
||||||
|
let userJoinedRoomMessage = new UserJoinedRoomMessage();
|
||||||
|
userJoinedRoomMessage.setUuid(uuid);
|
||||||
|
userJoinedRoomMessage.setName(name);
|
||||||
|
userJoinedRoomMessage.setIpaddress(ip);
|
||||||
|
|
||||||
|
serverToAdminClientMessage.setUserjoinedroom(userJoinedRoomMessage);
|
||||||
|
|
||||||
this.socket.write(serverToAdminClientMessage);
|
this.socket.write(serverToAdminClientMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public sendUserLeft(uuid: string, name: string, ip: string): void {
|
public sendUserLeft(uuid: string/*, name: string, ip: string*/): void {
|
||||||
let serverToAdminClientMessage = new ServerToAdminClientMessage();
|
let serverToAdminClientMessage = new ServerToAdminClientMessage();
|
||||||
serverToAdminClientMessage = serverToAdminClientMessage.setUseruuidnameleftroom(uuid+';'+name+';'+ip);
|
|
||||||
|
let userLeftRoomMessage = new UserLeftRoomMessage();
|
||||||
|
userLeftRoomMessage.setUuid(uuid);
|
||||||
|
|
||||||
|
serverToAdminClientMessage.setUserleftroom(userLeftRoomMessage);
|
||||||
|
|
||||||
this.socket.write(serverToAdminClientMessage);
|
this.socket.write(serverToAdminClientMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,7 +145,7 @@ export class GameRoom {
|
||||||
|
|
||||||
// Notify admins
|
// Notify admins
|
||||||
for (const admin of this.admins) {
|
for (const admin of this.admins) {
|
||||||
admin.sendUserLeft(user.uuid, user.name, user.IPAddress);
|
admin.sendUserLeft(user.uuid/*, user.name, user.IPAddress*/);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -203,8 +203,8 @@ const roomManager: IRoomManagerServer = {
|
||||||
callback(null, new EmptyMessage());
|
callback(null, new EmptyMessage());
|
||||||
},
|
},
|
||||||
ban(call: ServerUnaryCall<BanMessage>, callback: sendUnaryData<EmptyMessage>): void {
|
ban(call: ServerUnaryCall<BanMessage>, callback: sendUnaryData<EmptyMessage>): void {
|
||||||
|
// FIXME Work in progress
|
||||||
socketManager.banUser(call.request.getRoomid(), call.request.getRecipientuuid());
|
socketManager.banUser(call.request.getRoomid(), call.request.getRecipientuuid(), 'foo bar TODO change this');
|
||||||
|
|
||||||
callback(null, new EmptyMessage());
|
callback(null, new EmptyMessage());
|
||||||
},
|
},
|
||||||
|
|
|
@ -316,10 +316,20 @@ message ServerToAdminClientMessage {
|
||||||
repeated SubToAdminPusherMessage payload = 2;
|
repeated SubToAdminPusherMessage payload = 2;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
message UserJoinedRoomMessage {
|
||||||
|
string uuid = 1;
|
||||||
|
string ipAddress = 2;
|
||||||
|
string name = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UserLeftRoomMessage {
|
||||||
|
string uuid = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message ServerToAdminClientMessage {
|
message ServerToAdminClientMessage {
|
||||||
oneof message {
|
oneof message {
|
||||||
string userUuidNameJoinedRoom = 1;
|
UserJoinedRoomMessage userJoinedRoom = 1;
|
||||||
string userUuidNameLeftRoom = 2;
|
UserLeftRoomMessage userLeftRoom = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ import {
|
||||||
AdminPusherToBackMessage,
|
AdminPusherToBackMessage,
|
||||||
ServerToAdminClientMessage,
|
ServerToAdminClientMessage,
|
||||||
SendUserMessage,
|
SendUserMessage,
|
||||||
BanUserMessage
|
BanUserMessage, UserJoinedRoomMessage, UserLeftRoomMessage
|
||||||
} from "../Messages/generated/messages_pb";
|
} from "../Messages/generated/messages_pb";
|
||||||
import {PointInterface} from "../Model/Websocket/PointInterface";
|
import {PointInterface} from "../Model/Websocket/PointInterface";
|
||||||
import {ProtobufUtils} from "../Model/Websocket/ProtobufUtils";
|
import {ProtobufUtils} from "../Model/Websocket/ProtobufUtils";
|
||||||
|
@ -77,15 +77,28 @@ export class SocketManager implements ZoneEventListener {
|
||||||
client.adminConnection = adminRoomStream;
|
client.adminConnection = adminRoomStream;
|
||||||
|
|
||||||
adminRoomStream.on('data', (message: ServerToAdminClientMessage) => {
|
adminRoomStream.on('data', (message: ServerToAdminClientMessage) => {
|
||||||
if (message.hasUseruuidnamejoinedroom()) {
|
if (message.hasUserjoinedroom()) {
|
||||||
const userUuidName = message.getUseruuidnamejoinedroom();
|
const userJoinedRoomMessage = message.getUserjoinedroom() as UserJoinedRoomMessage;
|
||||||
if (!client.disconnecting) {
|
if (!client.disconnecting) {
|
||||||
client.send('MemberJoin:'+userUuidName+';'+roomId);
|
client.send(JSON.stringify({
|
||||||
|
type: 'MemberJoin',
|
||||||
|
data: {
|
||||||
|
uuid: userJoinedRoomMessage.getUuid(),
|
||||||
|
name: userJoinedRoomMessage.getName(),
|
||||||
|
ipAddress: userJoinedRoomMessage.getIpaddress(),
|
||||||
|
roomId: roomId,
|
||||||
|
}
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
} else if (message.hasUseruuidnameleftroom()) {
|
} else if (message.hasUserleftroom()) {
|
||||||
const userUuidName = message.getUseruuidnameleftroom();
|
const userLeftRoomMessage = message.getUserleftroom() as UserLeftRoomMessage;
|
||||||
if (!client.disconnecting) {
|
if (!client.disconnecting) {
|
||||||
client.send('MemberLeave:'+userUuidName+';'+roomId);
|
client.send(JSON.stringify({
|
||||||
|
type: 'MemberLeave',
|
||||||
|
data: {
|
||||||
|
uuid: userLeftRoomMessage.getUuid()
|
||||||
|
}
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Unexpected admin message');
|
throw new Error('Unexpected admin message');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue