Je suis sur le point d'écrire, mais je suis resté coincé en chemin ... Vous pouvez le fermer sans le publier sous forme de brouillon ...
La raison pour laquelle je suis resté bloqué est que je comprends que WebSocket démarre la communication du côté client vers le serveur à tout moment, mais je ne sais pas comment communiquer du côté serveur vers le client à tout moment ...
Pour le moment, voici des enquêtes préliminaires
Le mécanisme qui réalise la communication bidirectionnelle entre le navigateur et le serveur s'appelait autrefois polling avec JavaScript ou comète ... Récemment, je ne vois pas souvent le mot Websocket.
Pour une présentation générale de la technologie de communication bidirectionnelle, reportez-vous à ce qui suit
Et l'autre jour, j'ai fait une implémentation côté client de Websocket
Ce que je veux faire cette fois, c'est comme titre, et je vais l'implémenter moi-même à la fois côté serveur et côté client, alors étudiez à partir de 1 ...
Après avoir examiné diverses choses, j'ai pu comprendre rapidement ce qui suit
La compréhension ci-dessus s'est approfondie, le cas échéant, du côté client ...
Une instance de WebSocket en JavaScript dans l'implémentation côté navigateur / HTML + JavaScript? Pour décrire le comportement / comportement lors de la réception d'un message du serveur
Ainsi, côté serveur, une implémentation qui envoie un message lorsque le nombre de clients augmente a été décrite comme un exemple.
Ce que je veux faire, c'est autoriser le côté serveur à envoyer un message à tout moment, et le côté client actualise l'affichage à l'écran lorsque le message est reçu et implémente également le processus de mise à jour du côté client.
Quelque chose d'un peu difficile a été écrit au début, mais ... Ce qui suit m'a aussi aidé à comprendre comment cela fonctionne.
Docker et uwsgi sont un peu plus d'informations, mais ...
Il semble que l'implémentation côté client puisse être utilisée, WebSocket est démarré lorsque le bouton est cliqué, un message est créé du côté client vers le serveur lorsque la connexion est démarrée, et lorsque le côté serveur reçoit le message, le contenu est directement transféré au client. Reçoit un message du côté serveur et l'affiche à l'invite du côté client
Je ne sais pas quand l'événement onclose côté client se produira ...
Le programme que j'essaie d'intégrer cette fois utilise un cadre appelé responder en Python, donc l'exemple d'implémentation suivant sera utile.
L'implémentation côté serveur est utile
@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]
Le déclencheur lors de l'envoi de données du côté client au serveur est lorsque vous appuyez sur Entrée, qui peut être utilisable
window.onload = function () {
textbox.addEventListener('keypress', function (e) {
//Envoyer un message lorsque vous appuyez sur la touche Entrée
if (e.keyCode == 13) {
ws.send(textbox.value);
textbox.value = "";
}
});
}
Donc, après avoir fait des recherches jusqu'à présent, j'ai réalisé que je ne connaissais même pas le dessin de page simple avec répondeur en premier lieu, alors j'ai également recueilli des informations à ce sujet.
Ce n'est pas seulement un dessin de page, mais ce qui suit est beaucoup de référence
resp.text
et j'étais inquiet pendant un moment car il n'était pas dessiné correctement avec HTML, mais je dois le retourner avec resp.content
... J'ai lu et remarquéRecommended Posts