次のようなJSコードを見ると:
socket = new WebSocket(server);
socket.onopen = function (evt)
{
// STUFF
};
私はいつも少し混乱しています。onopen
そのようなものを他の言語で書いた場合、接続が確立された後に「イベントハンドラー」がバインドserver
され、イベントを見逃す可能性が非常に高くなりますonopen
。最初の行が Javascript インタープリターによって非同期に実行されたとしても、2 行目で遅すぎる可能性がわずかにありました。
上記のコードが Javascript では正常に動作するのに、(たとえば) C# では次のように記述する必要があるのはなぜですか。
WebSocket socket = new WebSocket();
socket.onopen = new EventHandler<EventArgs>(Open);
socket.Connect(server);