繁体   English   中英

我的signalR客户端缺少什么基本组件?

[英]What basic component am I missing from my signalR client?

遵循本教程:

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

我设法实现了一个非常非常简单的Signalr聊天客户端。 即,一个广播从javascript发送给它的消息的集线器。

很好,行得通。

但是现在我试图用相同的index.html文件和js(即发送消息的代码)创建第二个项目,但出现了未定义的错误。 正如本教程指定的和我完成的一样(在“远程”项目中),文件之间的唯一区别是我已明确建议指定connection.hub.url ,这是我从各种建议中得到的建议。帖子。

我到底在想什么? 仅仅将URL设置到托管信号中心的另一个站点显然是不够的,我是否需要添加某种代理? 在这一点上完全困惑。

我的javascript文件(不带集线器的网站上的javascript):

$(function () {
            var chat = $.connection.chatHub;
            $.connection.hub.url = "http://localhost:14113/signalr";

            chat.client.broadcastMessage = function (name, message) {
                // Do something
            };

            $.connection.hub.start().done(function () {
                $('#sendmessage').click(function () {
                    chat.server.send($('#displayname').val(), $('#message').val());
                });
            });
        });

它是对chat变量的第一次引用,我有未定义的错误。

注意:我可以确认两个站点都在运行,可以使用集线器,因为我可以导航到另一个选项卡(原始解决方案中的相同index.html文件),并且它可以正常运行。

我还可以确认我的jQuery库(正确引用)和jQuery signalR脚本(同样,没有404,都正确引用)的存在。

您正在尝试访问在主机应用程序中生成的chatHub 看起来您的代码无法获取该chatHub 您需要确保在客户端应用程序中包括集线器,如下所示:

<script src="localhost:14113/signalr/hubs"></script>

尝试使用xdomain这样的代理,例如

$(function () {

    $.connection.hub.url = 'http://localhost:14113/signalr';

    $.connection.hub.start({ xdomain: true })
        .done(function () { console.log('Connected. connectionId : ' + $.connection.hub.id); })
        .fail(function () { console.log('Could not connect!');
    });

    var proxy = $.connection.chatHub;

    proxy.client.broadcastMessage = function(uri) {
        //Do something
    };

    $('#sendmessage').click(function () {
        proxy.server.send($('#displayname').val(), $('#message').val());
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM