私は過去数日間WebSocketを試してきましたが、私は新しい、非常にクールな技術といくつかの経験をしています。私は、HTML5 Labsの最新リリースを使用するシンプルなチャットクライアントを作成しました。これはhybi-09のドラフト仕様リリースだと思います。クライアントはChrome(devチャネルv14.0)でうまくいきます。すべてが機能するはずです。しかし、WebSocket(FireFox(v6.0b)、WebSockets機能を有効にしたSafari(v5.1))をネイティブにサポートする他の主要なブラウザでは、何らかの理由で接続できません。WebSocketのバージョンと下位互換性
$(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
};
}
と、いくつかの(C#)サーバコード:ここに私のクライアントコードの一部だ、私が言ったように
static void Main(string[] args)
{
var host = new WebSocketsHost<ReverseService>();
host.AddWebSocketsEndpoint("ws://" + Environment.MachineName + ":4502/chat");
host.Open();
Console.ReadLine();
}
、それはChromeで罰金接続し、それが必要として.onopen機能に当たります。 FFとSafariでは、それはonclose関数にまっすぐ進み、決して接続しません。 FFで、私は、次のエラーを取得:
"NetworkError: 501 Not Implemented - http://localhost:4502/chat"
Firefox can't establish a connection to the server at ws://localhost:4502/chat
そしてSafariで:
WebSocket frame (at 4294967295 bytes) is too long.
私は考えることができる唯一のことは、後方互換性の問題のいくつかの種類です。私はChrome 14.xがhybi WebSocketのドラフト10の仕様を実装していると思うし、FF 6は07または08のドラフトを実装していると思うし、Safari 5.1についてはわからない。問題が何であるか、どのように解決できるかについて誰かが洞察力を持っているなら、私は助けに感謝します。ありがとう!
ありがとうございますin窓のコードの断片。クロスプラットフォームのjsを書くための簡単な方法を探していました。 – Stevko