执行StreamHub的例外Hello World示例:WebSocket的无效URL ws:// localhost:7878ws /

时间:2011-04-04 22:59:46

标签: comet

我正在浏览在线文章Getting Started with Reverse Ajax and Comet中的StreamHub hello world示例。我认为我已经完全按照文章的指示配置了所有内容,但我在new StreamHub().connect(..)

获得了JavaScript异常

这是我的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/

我做错了什么?

1 个答案:

答案 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/");

更改连接字符串后,一切正常。