0

だから私は問題があります。fleck を使用して、JavaScript から C# サーバーにメッセージを送信したいと考えています。アプリで次のようなサーバーを起動します。

    var allSockets = new List<IWebSocketConnection>();
        var server = new WebSocketServer("ws://localhost:8081");
        server.Start(socket =>
        {
            socket.OnOpen = () => allSockets.Add(socket);
            socket.OnClose = () => allSockets.Remove(socket);
            socket.OnMessage = message =>
            {
                foreach (var s in allSockets.ToList())
                    s.Send(message);
            };
        });

そして、私のJavaScript側には次のものがあります:

   function sendPodatke(){
        document.write('send!');
        socket.send("javascript");
        document.write('aftersend!');
    }

    function connect(){
    document.write('connect!');
      socket = new WebSocket('ws://localhost:8081');
      socket.onmessage = function(mess) {
        animateCharacter(mess.data);
      };

    };

    connect();
    sendPodatke();

だから私は書き込み接続を取得します!, 送信! afterSend ではありません。私のC#サーバーでは、接続が完了していることがわかりますが、新しいonMessage呼び出しを取得します..

何か案は?

よろしくお願いします!

4

1 に答える 1

0

Websocket ハンドシェイクは非同期操作です。クライアントにコールバックを登録できonopenます。これが実行されたら、クライアントからサーバーにデータを送信する必要があります。詳細については、websocket API ドキュメントを参照してください。

于 2012-09-10T12:35:15.613 に答える