我有一個websocket服務器應用程序像波紋管。 (); _sockets = new List();如何託管我的WebSocket
var server = new WebSocketServer("ws://localhost:1234");
server.Start(socket =>
{
socket.OnOpen =() =>
{
Console.WriteLine("Socket is Opened..timeStame: " + DateTime.Now);
Console.WriteLine("Connected to " + socket.ConnectionInfo.ClientIpAddress);
_sockets.Add(socket);
};
socket.OnClose =() =>
{
Console.WriteLine("Socket is Closed..timeStame:" + DateTime.Now);
Console.WriteLine("Disconnected from " + socket.ConnectionInfo.ClientIpAddress);
_sockets.Remove(socket);
};
socket.OnMessage = message =>
{
Console.WriteLine(socket.ConnectionInfo.ClientIpAddress + " Message: "
+ message + " timeStame: " + DateTime.Now);
};
});
}
這是一個控制檯C#應用與我具有被調用_socket.Send一個計時器對象(value.ToString());爲每一秒連接的客戶端。
static void timer_Elapsed(object sender, ElapsedEventArgs e)
{
Random rand = new Random();
int value = rand.Next(0, 100);
if (_sockets.Count > 0)
{
foreach (var _socket in _sockets)
{
_socket.Send(value.ToString());
}
}
}
而且我有類似波紋管的HTML客戶端。其中status是一個顯示服務器值的標籤。
function socketSetup () {
if (typeof (WebSocket) !== 'undefined') {
var status = document.getElementById('status');
status.innerHTML = "Connecting to server...";
socket = new WebSocket('ws://localhost:1234');
socket.onopen = function() {
console.log("onopen is Called..");
status.innerHTML = "Connection successful.";
};
socket.onclose = function() {
console.log("onclose is Called..");
status.innerHTML = "Connection closed.";
};
socket.onmessage = function (e) {
console.log("onmessage is Called..");
var jsonObject = eval('(' + e.data + ')');
status.innerHTML = jsonObject;
socket.send("Client Updated With :" + jsonObject);
};
} else
alert("Your Browser does not support Web Socket");
};
</script>
每一件事情是工作的罰款與多客戶的情況太.... 現在我只想給主機的服務器,並希望從任何地方訪問.. 目前我使用.NET 4.0。 我知道有一個規定是.net 4.5託管WCF服務與websocket功能。我無法使用.net 4.5。和IIS8太... :( 是否有任何選項來承載我的服務器。??????? 與node.js的????
感謝任何選項, Arijit