2012-11-20 4 views
0

Je suis en train de se connecter à un serveur C# TCP en utilisant HTML5 de l'exemple dans http://www.tutorialspoint.com/html5/html5_websocket.htmconnexion HTML5 websocket à C# socket tcp

<!DOCTYPE HTML> 
<html> 
<head> 
<script type="text/javascript"> 
function WebSocketTest() 
{ 
    if ("WebSocket" in window) 
    { 
    alert("WebSocket is supported by your Browser!"); 
    // Let us open a web socket 
    var ws = new WebSocket("ws://localhost:9998/echo"); 
    ws.onopen = function() 
    { 
     // Web Socket is connected, send data using send() 
     ws.send("Message to send"); 
     alert("Message is sent..."); 
    }; 
    ws.onmessage = function (evt) 
    { 
     var received_msg = evt.data; 
     alert("Message is received..."); 
    }; 
    ws.onclose = function() 
    { 
     // websocket is closed. 
     alert("Connection is closed..."); 
    }; 
    } 
    else 
    { 
    // The browser doesn't support WebSocket 
    alert("WebSocket NOT supported by your Browser!"); 
    } 
} 
</script> 
</head> 
<body> 
<div id="sse"> 
<a href="javascript:WebSocketTest()">Run WebSocket</a> 
</div> 
</body> 
</html> 

Le serveur TCP fonctionne sur la machine locale sur le port 4530. Alors j'ai changé

var ws = new WebSocket("ws://localhost:9998/echo"); 

à

var ws = new WebSocket("ws://localhost:4530"); 

Quand je lance la page, je reçois le message WebSocket est pris en charge par votre navigateur! et il se bloque là. De l'aide?

+2

Votre serveur prend-il en charge le bon protocole 'WebSocket'? Cela peut dépendre du [browser] (http://en.wikipedia.org/wiki/WebSocket#Browser_support) que vous utilisez –

+0

Vous voulez dire que le serveur tcp devrait également supporter Websocket? En ce qui concerne le navigateur, le message *** WebSocket n'est-il pas supporté par votre navigateur! *** est-il suffisant? – Mika

+1

Les Websockets utilisent un protocole spécial au-dessus de TCP, y compris une prise de contact supplémentaire. Ce n'est pas comme les sockets normales que vous pouvez simplement connecter et commencer à communiquer. –

Répondre

1

Mika, jetez un oeil à http://xsockets.net, c'est un cadre en temps réel facile à démarrer pour dotnet (C#), peut être trouvé sur Nuget. Cliquez simplement sur Install-Package XSockets dans la console PM.

Le framework traite les spécifications 6455 tout comme le «vieux» protocole Hybi00 (draft).

Il dispose d'une bibliothèque JavaScript jQuery similaire à client et l'API côté serveur rappelle MVC.

+0

Ok, je vais jeter un coup d'oeil. – Mika