我创建了一个基于SuperWebSocket的示例应用程序(运行v0.3)。我设法通过Telnet连接到WebSocket服务器,但由于某种原因,我在通过JavaScript(运行Chrome 17.0.963.46 m)连接时遇到了问题。
通过Telnet,我可以通过localhost:911或192.168.1.147:911进行连接。
我的应用程序正在上运行http://localhost/Raphael-Test/,并且我已经尝试运行本地主机和本地网络IP,两者都被困在"正在连接",即状态0。
我有没有明显遗漏什么,应该在Web应用程序本身中进行的配置?我应该补充一点,我已经成功地尝试了LiveChat演示,并通过JavaScript实现了它。
这是我当前在页面完全加载时运行的客户端实现:
ws = new WebSocket("ws://192.168.1.147:911");
ws.onopen = function () {
alert("connected");
};
ws.onmessage = function (evt) {
var msg = evt.data;
alert(msg);
};
握手(无应答):
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: 192.168.1.147:911
Origin: http://192.168.1.147
Sec-WebSocket-Key: 8bl46pmPrixTYRJ/5i9Sug==
Sec-WebSocket-Version: 13
事实证明,我在服务器端使用了SuperSocket Server基类,而不是SuperWebSocket。这使得TCP连接本身按预期工作,但当然没有处理WebSocket握手,因此连接失败。