我的 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(即发送消息的代码)创建第二个项目,但出现未定义错误。教程指定的文件与我所做的(在 'remote' 项目中)之间的唯一区别是我已经明确指定了 connection.hub.url
,正如我被建议的那样来自各种帖子。
我到底错过了什么?仅仅将 url 设置为托管信号器中心的其他站点显然是不够的,我需要添加某种代理吗?在这一点上完全困惑。
我的javascript文件(没有hub的网站上的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,所有正确引用)的存在。
尝试使用 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());
});
});
您正在尝试访问在您的主机应用程序中生成的 chatHub
。看起来您的代码无法获取 chatHub
。您需要确保在客户端应用程序中包含集线器,如下所示:
<script src="localhost:14113/signalr/hubs"></script>
学习本教程:
http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr
我设法实现了一个非常非常简单的 Signalr 聊天客户端。即,广播从 javascript.
发送给它的消息的集线器太好了,行得通。
但现在我尝试使用相同的 index.html 文件和 js(即发送消息的代码)创建第二个项目,但出现未定义错误。教程指定的文件与我所做的(在 'remote' 项目中)之间的唯一区别是我已经明确指定了 connection.hub.url
,正如我被建议的那样来自各种帖子。
我到底错过了什么?仅仅将 url 设置为托管信号器中心的其他站点显然是不够的,我需要添加某种代理吗?在这一点上完全困惑。
我的javascript文件(没有hub的网站上的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,所有正确引用)的存在。
尝试使用 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());
});
});
您正在尝试访问在您的主机应用程序中生成的 chatHub
。看起来您的代码无法获取 chatHub
。您需要确保在客户端应用程序中包含集线器,如下所示:
<script src="localhost:14113/signalr/hubs"></script>