quick patch to stop status spam
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
const connection = new WebSocket('ws://localhost:8181/socket')
|
// const connection = new WebSocket('ws://localhost:8181/socket')
|
||||||
// const connection = new WebSocket('wss://echo.websocket.org')
|
// const connection = new WebSocket('wss://echo.websocket.org')
|
||||||
// const connection = new WebSocket('wss://voozik.gltronic.ovh/socket')
|
const connection = new WebSocket('wss://voozik.gltronic.ovh/socket')
|
||||||
|
|
||||||
var alive = null
|
var alive = null
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ export default function createSignalPlugin () {
|
|||||||
break
|
break
|
||||||
|
|
||||||
case 'roomStatus':
|
case 'roomStatus':
|
||||||
store.dispatch('room/setRoomStatus', data.message)
|
if (store.state.room.admin) store.dispatch('room/setRoomStatus', data.message)
|
||||||
break
|
break
|
||||||
|
|
||||||
case 'roomSettings':
|
case 'roomSettings':
|
||||||
|
|||||||
@@ -6,18 +6,20 @@ import java.util.Optional;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.socket.TextMessage;
|
import org.springframework.web.socket.TextMessage;
|
||||||
import org.springframework.web.socket.WebSocketSession;
|
import org.springframework.web.socket.WebSocketSession;
|
||||||
|
|
||||||
|
import gltronic.voozik.model.Server;
|
||||||
import gltronic.voozik.model.ServerStatus;
|
import gltronic.voozik.model.ServerStatus;
|
||||||
import gltronic.voozik.model.VRoom;
|
import gltronic.voozik.model.VRoom;
|
||||||
import gltronic.voozik.model.VUser;
|
import gltronic.voozik.model.VUser;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RoomManager implements IRoomManager {
|
public class RoomManager implements IRoomManager {
|
||||||
private volatile ArrayList<VUser> users = new ArrayList<VUser>();
|
@Autowired
|
||||||
private volatile ArrayList<VRoom> rooms = new ArrayList<VRoom>();
|
Server server;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void login(WebSocketSession session, String name) throws InterruptedException, IOException {
|
public void login(WebSocketSession session, String name) throws InterruptedException, IOException {
|
||||||
@@ -26,12 +28,12 @@ public class RoomManager implements IRoomManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (users.stream().anyMatch(user -> user.getSession().equals(session))) {
|
if (server.users.stream().anyMatch(user -> user.getSession().equals(session))) {
|
||||||
SocketUtils.sendMessage(session, "login", "false");
|
SocketUtils.sendMessage(session, "login", "false");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (users.stream().anyMatch(user -> user.getName().equals(name))) {
|
if (server.users.stream().anyMatch(user -> user.getName().equals(name))) {
|
||||||
SocketUtils.sendMessage(session, "login", "false");
|
SocketUtils.sendMessage(session, "login", "false");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -40,7 +42,7 @@ public class RoomManager implements IRoomManager {
|
|||||||
user.setName(name);
|
user.setName(name);
|
||||||
user.setSession(session);
|
user.setSession(session);
|
||||||
|
|
||||||
users.add(user);
|
server.users.add(user);
|
||||||
|
|
||||||
SocketUtils.sendMessage(session, "login", "true");
|
SocketUtils.sendMessage(session, "login", "true");
|
||||||
sendServerInfos(session);
|
sendServerInfos(session);
|
||||||
@@ -50,11 +52,11 @@ public class RoomManager implements IRoomManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void leave(WebSocketSession session) throws InterruptedException, IOException {
|
public void leave(WebSocketSession session) throws InterruptedException, IOException {
|
||||||
VUser user = UserUtils.getUser(session, users);
|
VUser user = UserUtils.getUser(session, server.users);
|
||||||
if (user == null) return;
|
if (user == null) return;
|
||||||
|
|
||||||
users.remove(user);
|
server.users.remove(user);
|
||||||
Optional<VRoom> oroom = rooms.stream().filter(room -> room.getUsers().contains(user)).findFirst();
|
Optional<VRoom> oroom = server.rooms.stream().filter(room -> room.getUsers().contains(user)).findFirst();
|
||||||
|
|
||||||
if (oroom.isPresent()) {
|
if (oroom.isPresent()) {
|
||||||
oroom.get().getUsers().remove(user);
|
oroom.get().getUsers().remove(user);
|
||||||
@@ -63,7 +65,7 @@ public class RoomManager implements IRoomManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createRoom(WebSocketSession session) throws InterruptedException, IOException {
|
public void createRoom(WebSocketSession session) throws InterruptedException, IOException {
|
||||||
VUser user = UserUtils.getUser(session, users);
|
VUser user = UserUtils.getUser(session, server.users);
|
||||||
if (user == null) return;
|
if (user == null) return;
|
||||||
|
|
||||||
if (user.getRoom() != null) {
|
if (user.getRoom() != null) {
|
||||||
@@ -83,7 +85,7 @@ public class RoomManager implements IRoomManager {
|
|||||||
room.setPublic(false);
|
room.setPublic(false);
|
||||||
room.setUsers(new ArrayList<VUser>());
|
room.setUsers(new ArrayList<VUser>());
|
||||||
|
|
||||||
rooms.add(room);
|
server.rooms.add(room);
|
||||||
user.setRoom(room);
|
user.setRoom(room);
|
||||||
|
|
||||||
SocketUtils.sendMessage(session, "roomCreate", roomCode);
|
SocketUtils.sendMessage(session, "roomCreate", roomCode);
|
||||||
@@ -98,14 +100,14 @@ public class RoomManager implements IRoomManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<VRoom> oroom = rooms.stream().filter(room -> room.getCode().equals(roomCode)).findFirst();
|
Optional<VRoom> oroom = server.rooms.stream().filter(room -> room.getCode().equals(roomCode)).findFirst();
|
||||||
if (oroom.isEmpty()) {
|
if (oroom.isEmpty()) {
|
||||||
SocketUtils.sendMessage(session, "error", "no room");
|
SocketUtils.sendMessage(session, "error", "no room");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
VRoom room = oroom.get();
|
VRoom room = oroom.get();
|
||||||
VUser user = UserUtils.getUser(session, users);
|
VUser user = UserUtils.getUser(session, server.users);
|
||||||
if (user == null) return;
|
if (user == null) return;
|
||||||
|
|
||||||
user.setRoom(room);
|
user.setRoom(room);
|
||||||
@@ -129,7 +131,7 @@ public class RoomManager implements IRoomManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void leaveRoom(WebSocketSession session) throws InterruptedException, IOException {
|
public void leaveRoom(WebSocketSession session) throws InterruptedException, IOException {
|
||||||
VUser user = UserUtils.getUser(session, users);
|
VUser user = UserUtils.getUser(session, server.users);
|
||||||
if (user == null) return;
|
if (user == null) return;
|
||||||
|
|
||||||
VRoom room = UserUtils.getRoom(session, user);
|
VRoom room = UserUtils.getRoom(session, user);
|
||||||
@@ -151,7 +153,7 @@ public class RoomManager implements IRoomManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setRoomStatus(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
public void setRoomStatus(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
||||||
VUser user = UserUtils.getUser(session, users);
|
VUser user = UserUtils.getUser(session, server.users);
|
||||||
if (user == null) return;
|
if (user == null) return;
|
||||||
|
|
||||||
VRoom room = UserUtils.getRoom(session, user);
|
VRoom room = UserUtils.getRoom(session, user);
|
||||||
@@ -175,7 +177,7 @@ public class RoomManager implements IRoomManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setRoomSettings(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
public void setRoomSettings(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
||||||
VUser user = UserUtils.getUser(session, users);
|
VUser user = UserUtils.getUser(session, server.users);
|
||||||
if (user == null) return;
|
if (user == null) return;
|
||||||
|
|
||||||
VRoom room = UserUtils.getRoom(session, user);
|
VRoom room = UserUtils.getRoom(session, user);
|
||||||
@@ -192,7 +194,7 @@ public class RoomManager implements IRoomManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void forwardRoomMessage(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
public void forwardRoomMessage(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
|
||||||
VUser user = UserUtils.getUser(session, users);
|
VUser user = UserUtils.getUser(session, server.users);
|
||||||
if (user == null) return;
|
if (user == null) return;
|
||||||
|
|
||||||
VRoom room = UserUtils.getRoom(session, user);
|
VRoom room = UserUtils.getRoom(session, user);
|
||||||
@@ -210,7 +212,7 @@ public class RoomManager implements IRoomManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void kickUser(WebSocketSession session, String username) throws InterruptedException, IOException {
|
public void kickUser(WebSocketSession session, String username) throws InterruptedException, IOException {
|
||||||
VUser user = UserUtils.getUser(session, users);
|
VUser user = UserUtils.getUser(session, server.users);
|
||||||
if (user == null) return;
|
if (user == null) return;
|
||||||
|
|
||||||
VRoom room = UserUtils.getRoom(session, user);
|
VRoom room = UserUtils.getRoom(session, user);
|
||||||
@@ -239,11 +241,11 @@ public class RoomManager implements IRoomManager {
|
|||||||
|
|
||||||
public void sendServerInfos(WebSocketSession session) throws InterruptedException, IOException {
|
public void sendServerInfos(WebSocketSession session) throws InterruptedException, IOException {
|
||||||
ServerStatus status = new ServerStatus();
|
ServerStatus status = new ServerStatus();
|
||||||
status.setRoomCount(rooms.size());
|
status.setRoomCount(server.rooms.size());
|
||||||
status.setUserCount(users.size());
|
status.setUserCount(server.users.size());
|
||||||
status.setRooms(new ArrayList<String>());
|
status.setRooms(new ArrayList<String>());
|
||||||
|
|
||||||
rooms.forEach(room -> {
|
server.rooms.forEach(room -> {
|
||||||
if(room.isPublic()) status.getRooms().add(room.getCode());
|
if(room.isPublic()) status.getRooms().add(room.getCode());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
11
server/src/main/java/gltronic/voozik/model/Server.java
Normal file
11
server/src/main/java/gltronic/voozik/model/Server.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package gltronic.voozik.model;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class Server {
|
||||||
|
public ArrayList<VUser> users = new ArrayList<VUser>();
|
||||||
|
public ArrayList<VRoom> rooms = new ArrayList<VRoom>();
|
||||||
|
}
|
||||||
BIN
voozik.jar
BIN
voozik.jar
Binary file not shown.
Reference in New Issue
Block a user