Je suis aux premiers stades de l'écriture d'un programme pour interagir avec une caméra IP. Un peu de code que j'ai écrit hier a fonctionné, mais quand je suis revenu ce matin, ça n'a pas marché. Je sais, j'ai probablement fait quelque chose, mais pour autant que je m'en souvienne, ça fonctionnait quand j'ai cliqué sur débogage avant de partir et ça ne fonctionnait pas quand j'ai cliqué sur débogage en revenant. J'ai même laissé mon ordinateur allumé avec VS en cours d'exécution toute la nuit (ce que je fais presque jamais, et j'ai redémarré depuis) pour pouvoir le trouver exactement comme je l'avais laissé. L'ordinateur était verrouillé, donc à moins qu'une personne très débrouillarde ait décidé de jouer avec moi, rien n'a changé pendant la nuit.
J'utilise websocket-sharp, et lorsque je me connecte au websocket (ce qui semble se passer avec succès), l'événement OnOpen n'est pas déclenché.
L'endroit où websocket-sharp déclenche l'événement se trouve dans les lignes suivantes.
private void open ()
{
_inMessage = true;
startReceiving ();
try {
OnOpen.Emit (this, EventArgs.Empty);
}
catch (Exception ex) {
_logger.Error (ex.ToString ());
error ("Une erreur s'est produite pendant l'événement OnOpen.", ex);
}
Il atteint le OnOpen.Emit, et ne lance pas l'exception, donc il semble penser qu'il déclenche l'événement. L'événement est illustré ci-dessous
public event EventHandler OnOpen;
Il ne semble pas atteindre cette ligne car lorsque je mets un point d'arrêt là, il n'est pas en pause. Je n'ai jamais utilisé la méthode .Emit pour déclencher des événements avant, et je ne trouve pas grand-chose dans mes recherches, donc peut-être que quelque chose ne fonctionne pas là-bas?
Mon code est ci-dessous.
public Form1()
{
InitializeComponent();
this.Shown += MainWindow_Loaded;
}
void MainWindow_Loaded(object sender, EventArgs e)
{
using (var ws = new WebSocket("ws://169.254.101.183"))
{
ws.OnMessage += (sender2, e2) =>
textBox1.Text = e2.Data.ToString();
ws.Connect();
ws.OnOpen += (sender2,e2) =>
textBox1.Text = "connecté";
/*ws.OnError += (sender2, e2) =>
textBox1.Text = e2.Message;*/
//textBox1.Text = ".";
}
}
Y a-t-il une raison évidente pour laquelle OnOpen.Emit ne devrait pas déclencher effectivement l'événement OnOpen?