C# en tant que serveur Websocket pour HTML5 connexion websocket

Je suppose que c'est déjà le temps que je demande à d'autres. Est-il possible de créer un serveur websocket à l'aide de C# et de la demande de serveur de HTML5 codes?

Je suis actuellement en utilisant le Système de package de websocket. J'ai un code que j'ai téléchargé sur internet et c'est ici:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WebSocketChatServer
{
using WebSocketServer;
class ChatServer
{
WebSocketServer wss;
List<User> Users = new List<User>();
string unknownName = "john doe";
public ChatServer()
{
//wss = new WebSocketServer(8181, "http://localhost:8080", "ws://localhost:8181/chat");
wss = new WebSocketServer(8080, "http://localhost:8080", "ws://localhost:8080/dotnet/Chats");
wss.Logger = Console.Out;
wss.LogLevel = ServerLogLevel.Subtle;
wss.ClientConnected += new ClientConnectedEventHandler(OnClientConnected);
wss.Start();
KeepAlive();
}
private void KeepAlive()
{
string r = Console.ReadLine();
while (r != "quit")
{
if(r == "users")
{
Console.WriteLine(Users.Count);
}
r = Console.ReadLine();
}
}
void OnClientConnected(WebSocketConnection sender, EventArgs e)
{
Console.WriteLine("test");
Users.Add(new User() { Connection = sender });
sender.Disconnected += new WebSocketDisconnectedEventHandler(OnClientDisconnected);
sender.DataReceived += new DataReceivedEventHandler(OnClientMessage);
}
void OnClientMessage(WebSocketConnection sender, DataReceivedEventArgs e)
{
Console.WriteLine(sender);
User user = Users.Single(a => a.Connection == sender);
if (e.Data.Contains("/nick"))
{
string[] tmpArray = e.Data.Split(new char[] { ' ' });
if (tmpArray.Length > 1)
{
string myNewName = tmpArray[1];
while (Users.Where(a => a.Name == myNewName).Count() != 0)
{
myNewName += "_";
}
if (user.Name != null)
wss.SendToAll("server: '" + user.Name + "' changed name to '" + myNewName + "'");
else
sender.Send("you are now know as '" + myNewName + "'");
user.Name = myNewName;
}
}
else
{
string name = (user.Name == null) ? unknownName : user.Name;
wss.SendToAllExceptOne(name + ": " + e.Data, sender);
sender.Send("me: " + e.Data);
}
}
void OnClientDisconnected(WebSocketConnection sender, EventArgs e)
{
try
{
User user = Users.Single(a => a.Connection == sender);
string name = (user.Name == null) ? unknownName : user.Name;
wss.SendToAll("server: "+name + " disconnected");
Users.Remove(user);
}
catch (Exception exc)
{
Console.WriteLine("ehm...");
}
}
}
}

Et j'ai ce code côté client:

<!HTML>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script language="javascript" type="text/javascript">  
jQuery(document).ready(function(){
var socket = new WebSocket("ws://localhost:8080");  
socket.onopen = function(){  
alert("Socket has been opened!");  
}  
});
</script>  
</head>
</HTML>

Que je lance ma console C# app et de charger la page du client, l'application me dit qu'il y a quelqu'un qui s'est connecté dans le port, il est à l'écoute. Mais de mon côté client, comme je regarde dans firebug de la console, il me donne le débutant classique de l'erreur:

Firefox can't establish a connection to the server at ws://localhost:8080/

Ce que je souhaite réaliser est d'établir d'abord un succès de la connexion websocket et pousser la valeur de mon client à venir à partir de mon serveur.

Que j'ai considéré comme l'Alchimie, mais la version que j'ai est Visual Studio express 2010, la version gratuite, et il est dit que "la solution de dossiers ne sont pas pris en charge dans cette version de l'application".

Toute aide sera très appréciée.

OriginalL'auteur Charmie | 2013-03-13