Ich bin im Begriff zu schreiben, aber ich blieb auf dem Weg stecken ... Es ist in Ordnung, es zu schließen, ohne es als Entwurf zu veröffentlichen ...
Der Grund, warum ich nicht weiterkam, ist, dass ich verstehe, dass WebSocket jederzeit die Kommunikation von der Clientseite zum Server startet, aber ich weiß nicht, wie ich zu irgendeinem Zeitpunkt von der Serverseite zum Client kommunizieren soll ...
Im Folgenden sind vorerst vorläufige Erhebungen aufgeführt
Der Mechanismus, der die bidirektionale Kommunikation zwischen dem Browser und dem Server realisiert, wurde früher als Polling mit JavaScript oder Komet bezeichnet. In letzter Zeit sehe ich das Wort Websocket nicht oft.
Ein allgemeiner Vortrag über bidirektionale Kommunikationstechnologie finden Sie im Folgenden
Und neulich habe ich eine clientseitige Implementierung von Websocket durchgeführt
Was ich dieses Mal tun möchte, ist der Titel, und ich werde ihn sowohl auf der Serverseite als auch auf der Clientseite selbst implementieren. Studieren Sie also von 1 ...
Nachdem ich mir verschiedene Dinge angesehen hatte, konnte ich Folgendes schnell verstehen
Das obige Verständnis hat sich auf der Kundenseite eher vertieft ...
Eine Instanz von WebSocket in JavaScript in der Implementierung auf der Browser- / HTML + JavaScript-Seite? Beschreibung des Verhaltens beim Empfang einer Nachricht vom Server
Auf der Serverseite wurde eine Implementierung als Beispiel beschrieben, die eine Nachricht sendet, wenn die Anzahl der Clients zunimmt.
Ich möchte der Serverseite erlauben, jederzeit eine Nachricht zu senden, und die Clientseite aktualisiert die Bildschirmanzeige, wenn die Nachricht empfangen wird, und implementiert auch den Aktualisierungsprozess von der Clientseite.
Am Anfang wurde etwas Schwieriges geschrieben, aber ... Das Folgende hat mir auch geholfen zu verstehen, wie es funktioniert.
Docker und Uwsgi sind ein paar zusätzliche Informationen, aber ...
Es scheint, dass die Implementierung auf der Clientseite verwendet werden kann. WebSocket wird gestartet, wenn auf die Schaltfläche geklickt wird. Beim Starten der Verbindung wird eine Nachricht von der Clientseite zum Server erstellt. Wenn die Serverseite die Nachricht empfängt, wird der Inhalt direkt an den Client übertragen Empfängt eine Nachricht von der Serverseite und zeigt sie an der Eingabeaufforderung auf der Clientseite an
Ich weiß nicht, wann das Onclose-Ereignis auf der Clientseite eintreten wird ...
Das Programm, das ich dieses Mal einbetten möchte, verwendet ein Framework namens Responder in Python. Das folgende Implementierungsbeispiel ist daher hilfreich.
Die serverseitige Implementierung ist hilfreich
@api.route('/ws', websocket=True)
async def websocket(ws):
await ws.accept()
key = ws.headers.get('sec-websocket-key')
clients[key] = ws
try:
while True:
msg = await ws.receive_text()
for client in clients.values():
await client.send_text(msg)
except:
await ws.close()
del clients[key]
Der Auslöser beim Senden von Daten von der Clientseite an den Server ist das Drücken der Eingabetaste, was möglicherweise verwendet werden kann
window.onload = function () {
textbox.addEventListener('keypress', function (e) {
//Senden Sie eine Nachricht, wenn Sie die Eingabetaste drücken
if (e.keyCode == 13) {
ws.send(textbox.value);
textbox.value = "";
}
});
}
Nachdem ich bisher recherchiert hatte, stellte ich fest, dass ich überhaupt nicht über das einfache Zeichnen von Seiten mit Responder Bescheid wusste, und nahm auch Informationen dazu auf.
Es ist nicht nur das Zeichnen von Seiten, sondern das Folgende ist eine Menge Referenz
Recommended Posts