Sending message from server to client when web socket is opened.

Ouverte
#158 14 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python
Domaine
backend, networking

Piste de recherche

Start with the extended chat example and trace ChatWebSocketHandler.opened(), including the direct send and the websocket-broadcast publication. Check how the WebSocketPlugin pool handles a newly opened connection; done means a client receives the initial server message without the socket being terminated.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Gang:

I'm working with the extended chat example (works great out of the box), and trying to send a message from the server to the client when the web socket is initially opened:

    class ChatWebSocketHandler(WebSocket):
      def opened(self):
        cherrypy.engine.publish('add-client', self.username, self)
        self.send("Hello, World!")

However, this causes the web socket to be terminated. I've also tried publishing the message:

    class ChatWebSocketHandler(WebSocket):
      def opened(self):
        cherrypy.engine.publish('add-client', self.username, self)
        cherrypy.engine.publish("websocket-broadcast", "Hello, World!")

... which doesn't terminate the web socket, but doesn't send the message to the newly-connected client either (I assume this is because the broadcast is going out before the handler has been transferred to the WebSocketPlugin pool).

I'm looking to use web sockets for purely one-way publishing of a data feed from server to client(s), so this seems like a pretty basic use-case. What am I missing?

Thanks in advance,
Tim

Langage dominant
Python
Étoiles
1.1k
Forks
285
Merge moyen
1 j 19 h
PR mergées (30 j)
2

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Lawouach/WebSocket-for-Python

Toutes les issues de Lawouach/WebSocket-for-Python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.