我在Google Chrome上尝试这个简单的websocket示例:
var wsUri = "ws://echo.websocket.org/";
var output;
function init() {
output = document.getElementById("output");
testWebSocket();
}
function testWebSocket() {
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) {
onOpen(evt)
};
..............
..............
function onOpen(evt) {
writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt) {
writeToScreen("DISCONNECTED");
}
window.addEventListener("load", init, false);
但我总是只收到DISCONNECT!
有什么问题吗?
我必须在我的本地Apache启用WebSockets协议吗?如果是,怎么做?
此服务器不可靠。甚至在他们自己的Chrome 14演示页面上也失败了。
Chrome 14的WebSockets请求的响应是这样的,这显然是不正确的:
HTTP/1.1 200 OK
Server: Kaazing Gateway
Date: Tue, 27 Sep 2011 14:07:53 GMT
Content-Length: 0
请注意,Chrome刚刚切换到WebSockets协议的新草案,这是一个彻底的检修。这意味着服务器必须返回一个不同的握手响应,并且还必须解码发送的消息,这与之前的草案不同。这可能只是因为他们还没有升级他们的服务器。
你可能想要的是建立你自己的服务器,它符合新的草案,并在该服务器上测试它。
到处都是WebSockets服务器的库;您可以在这里查看并选择您所选择的服务器语言。
你需要指定websocket是一个变量。修改这一行:
websocket = new WebSocket(wsUri);
:
var websocket = new WebSocket(wsUri);
希望有帮助。这为我解决了一些问题。