Ich verwende Websocket für die Echtzeitkommunikation für mein mobiles App-Projekt. Ich implementiert grundlegende Sicherheitslogik: mit dem Server zu verbinden, muss der Kunde einen Schlüssel hat,Websocket-basierte App, Sicherheit und gute Praxis in Echtzeit?
-wenn der Client eine Verbindung zum Server sendet er sofort eine JSON-Objekt enthalten Authentifizierungsinformationen
{
action:"auth",
device_id: "string",
auth_key: "string",
user: "string"
}
-Der Server antwortet mit einer Session-ID, wenn der Schlüssel korrekt ist, oder die Verbindung abbricht - Davon werden alle vom Client gesendeten Daten ein JSON-Objekt mit dieser Sitzungs-ID sein, so dass der Server alle unbekannten Clients erkennen kann fallen gelassen.
Jetzt ist das große Problem, dass das WebSocket-Protokoll JSON nicht unterstützt, also muss ich JSON.stringify() und JSON.parse() verwenden, um meine Daten zu senden, auch muss ich überprüfen, ob die Sitzungs-ID ist gültig das braucht Zeit und die Anwendung ist nicht mehr glatt (vorher war es).
Zum Beispiel, wenn es Mauszeiger Bewegungen aufzeichnet, werden solche Daten an den Server gesendet werden, wie die Maus bewegt, so dass es Daten in kurzer Zeit sendet, und weil die Logik ich implementiert habe, ist es nicht glatt überhaupt
{
session_id: "string",
user: "string"
action:"mousemove",
position: {
x: int,
y: int
}
}
Meine Bedenken sind:
- den Server sichern, so dass niemand es und Befehle senden zugreifen können, ohne Genehmigung.
- Halten Sie es wirklich in Echtzeit
- ein gutes Datenformat (wie JSON wenn möglich)
JSON wäre perfekt, wenn ich nicht codieren und decodieren müsste. Allerdings bewegt die Maus Befehle einen Zeiger (roter Punkt) aus der Ferne, so dass eine pro Sekunde sendet, wird sehr schlecht sein, so brauche ich es in Echtzeit – Xsmael
Wie Echtzeit, Mausbewegung Ereignis löst Hunderte Mal pro Sekunde aus, wirklich brauchen so viele Anfragen? –
schauen, was ist, wenn ich eine Linie auf einem Computer zeichnen, und ich möchte die gleiche Linie auf einem Remote-Computer gezeichnet werden, wenn es nicht schnell genug ist, muss der Remote-Benutzer, dafür warten, und das ist unangenehm , schlimmer, fange ich an, andere Dinge zu zeichnen, bevor es fertig ist, auf dem Remote-Computer gerendert zu werden – Xsmael