Hallo gemeinde
ich habe ein kleines denkproblem und da ich bei google nichts passendes finde frag ich mal hier nach ein paar denk ansätzen.
ich schreibe seid einigerzeit an einem chatsystem, dabei habe ich die basis nun soweit das ich einen Spamschutz einbauen möchte aber möglichst ohne unzählige timer.
Erstmal zum aufbau:
ich arbeite mit dem xSocket und der server hat folgende (relevanten) klassen:
xSocketDataHandler:
Nimmt eingehende nachrichten an und versendet nachrichten
parseMsg:
bekommt die nachrichten des xSocketDataHandlers und verarbeitet die enthaltenen informationen
onlineUsers:
Beinhaltet die derzeit eingelogten nutzer und deren informationen (Nick, Rang, Raum etc) (pro nutzer existiert eine instanz und alle instanzen werden im vector users gespeichert)
channel:
Beinhaltet die Räume und deren attribute (Raumname, größe, usersOnline, abRang) (pro raum existiert eine instanz und alle instanzen werden im vector channels gespeichert)
adminCmd:
hier werden die zugelassenen aktionen für admins geschrieben
userCmd:
hier werden die zugelassenen aktionen für alle user geschrieben
bei jeder eingehenden nachricht hängt der server einen timestamp an.
so nun will ich zB das pro user 3 nachrichten pro 2 sekunden möglich sind mehr nicht. Wie mache ich das am besten ohne timer starten zu müssen oder pro nutzer 3 nachrichten im run halten zu müssen?
Wie sieht das ganze performans mäßig aus?
ich hoffe ihr könnt mir ein wenig weiterhelfen.
(Achja das ist nur ein lernprojekt nebenbei )
schonmal danke für eure ideen
ich habe ein kleines denkproblem und da ich bei google nichts passendes finde frag ich mal hier nach ein paar denk ansätzen.
ich schreibe seid einigerzeit an einem chatsystem, dabei habe ich die basis nun soweit das ich einen Spamschutz einbauen möchte aber möglichst ohne unzählige timer.
Erstmal zum aufbau:
ich arbeite mit dem xSocket und der server hat folgende (relevanten) klassen:
xSocketDataHandler:
Nimmt eingehende nachrichten an und versendet nachrichten
parseMsg:
bekommt die nachrichten des xSocketDataHandlers und verarbeitet die enthaltenen informationen
onlineUsers:
Beinhaltet die derzeit eingelogten nutzer und deren informationen (Nick, Rang, Raum etc) (pro nutzer existiert eine instanz und alle instanzen werden im vector users gespeichert)
channel:
Beinhaltet die Räume und deren attribute (Raumname, größe, usersOnline, abRang) (pro raum existiert eine instanz und alle instanzen werden im vector channels gespeichert)
adminCmd:
hier werden die zugelassenen aktionen für admins geschrieben
userCmd:
hier werden die zugelassenen aktionen für alle user geschrieben
bei jeder eingehenden nachricht hängt der server einen timestamp an.
so nun will ich zB das pro user 3 nachrichten pro 2 sekunden möglich sind mehr nicht. Wie mache ich das am besten ohne timer starten zu müssen oder pro nutzer 3 nachrichten im run halten zu müssen?
Wie sieht das ganze performans mäßig aus?
ich hoffe ihr könnt mir ein wenig weiterhelfen.
(Achja das ist nur ein lernprojekt nebenbei )
schonmal danke für eure ideen