Son birkaç gündür WebSockets ile denemeler yapıyorum ve yeni, çok havalı teknoloji ile bazı karışık deneyimler yaşıyorum. Ben hybi-09 taslak spec sürümü olduğunu inanıyorum HTML5 Labs, en son sürümü kullanan basit bir sohbet istemcisi yazdım. İstemci Chrome'da harika çalışıyor (dev kanal v14.0). Her şey gerektiği gibi çalışır. Ancak, WebSockets'ları (FireFox (v6.0b) (Evet, WebSockets işlevini açtım) Safari (v5.1)) yerel olarak destekleyen her büyük tarayıcıda, bazı nedenlerle bağlanamaz.WebSocket sürümleri ve geriye dönük uyumluluk
$(document).ready(connect);
function connect() {
if ('WebSocket' in window) {
websocket = new WebSocket('ws://' + window.location.hostname + ':4502/chat');
}
else if ('MozWebSocket' in window) {
websocket = new MozWebSocket('ws://' + window.location.hostname + ':4502/chat');
}
else {
//not supported
return;
}
websocket.onopen = function() {
//do some setup stuff
};
websocket.onclose = function() {
//DOH
};
websocket.onmessage = function (e) {
//Do some stuff with e.data
};
}
ve bazı (C#) sunucu kodu: İşte benim istemci kodunun bazı var
static void Main(string[] args)
{
var host = new WebSocketsHost<ReverseService>();
host.AddWebSocketsEndpoint("ws://" + Environment.MachineName + ":4502/chat");
host.Open();
Console.ReadLine();
}
Dediğim gibi, Chrome'da ince bağlar ve olması gerektiği gibi .onopen fonksiyonunu vurur. FF ve Safari'de, doğrudan byclose işlevine gider ve asla bağlanamaz.
"NetworkError: 501 Not Implemented - http://localhost:4502/chat"
Firefox can't establish a connection to the server at ws://localhost:4502/chat
Ve Safari'de: Aklıma
WebSocket frame (at 4294967295 bytes) is too long.
tek şey geriye dönük uyumluluk sorunu çeşit FF, ben aşağıdaki hataları olsun. Ben Chrome 14.x, hybi WebSockets 10 taslaklarını uygular inanıyoruz ve FF 6 taslak 07 veya 08 uygular düşünüyorum ve Safari 5.1 emin değilim. Sorunun ne olduğu ve/veya nasıl düzeltip düzeltemeyeceğimiz konusunda herhangi bir kavrayış varsa, bu yardımdan memnuniyet duyarım. Teşekkürler!
Windows kod parçacığı için teşekkürler. Crossplatform js yazmak için basit bir yol arıyordum. – Stevko