[英]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.