我正在浏览在线文章Getting Started with Reverse Ajax and Comet中的StreamHub hello world示例。我认为我已经完全按照文章的指示配置了所有内容,但我在new StreamHub().connect(..)
这是我的HTML文件:
<html>
<head>
<title>Hello World Comet Application</title>
<script type="text/javascript" src="streamhub-min.js"></script>
</head>
<body>
<h1>Hello World Comet Application</h1>
<input type="button" value="say hello" onclick="start()">
<div id="streamingData"></div>
<script>
function topicUpdated(sTopic, oData) {
var newDiv = document.createElement("DIV");
newDiv.innerHTML = "Update for topic '" + sTopic
+ "' Response: '" + oData.Response + "'";
document.getElementById("streamingData").appendChild(newDiv);
}
function start() {
var hub = new StreamHub();
hub.connect("http://localhost:7878/");
hub.subscribe("HelloWorld", topicUpdated);
}
</script>
</body>
</html>
抛出异常的行是:
hub.connect("http://localhost:7878/");
每次点击“打招呼”按钮都会发生这种情况,我得到的例外是:
WebSocket ws:// localhost:7878ws /
的网址无效
我的浏览器是Chrome 11.0.696.28测试版,但我在IE7上也有类似问题,所以我认为它与浏览器无关。这是一种奇怪的URI,不是吗? ws://localhost:7878ws/
我做错了什么?
答案 0 :(得分:0)
我在StreamHub blog上得到了答案。显然,他们早期博客文章中的教程已经过时了。这是需要做的事情:
如果将任何现有的Ajax SDK应用程序从2.0.x迁移到2.1或2.2,则需要更改连接URL以包含新的streamhub上下文。例如,如果您以前使用过:
hub.connect("http://localhost:7979/");
您现在需要使用:“
hub.connect("http://localhost:7979/streamhub/");
更改连接字符串后,一切正常。