0
我目前正在趕上與SignalR,並試圖建立一個非常基本的信號通知系統使用SignalR我非常基本的瞭解,但我無法得到消息在提交後回來。回覆客戶端不會觸發與SignalR
我已經閱讀過關於這個主題的許多博客,最基本的是有一個VOID方法接受一個字符串值,然後通過將它附加到客戶端上下文來傳回,但是,這不適用於,因爲onReceiveNotification()總是在JS調試器中未定義?
我缺少的東西
notificationhub.cs
[HubName("notificationHub")]
public class NotificationHub : Hub
{
public override System.Threading.Tasks.Task OnConnected()
{
return base.OnConnected();
}
public override System.Threading.Tasks.Task OnDisconnected(bool stopCalled)
{
return base.OnDisconnected(stopCalled);
}
public override System.Threading.Tasks.Task OnReconnected()
{
return base.OnReconnected();
}
[HubMethodName("sendNotifications")]
public void SendNotifications(string message)
{
Clients.All.onRecieveNotification(string.Format("{0} {1}", message, DateTime.Now.ToString()));
}
}
message.html頁
<div>
<input type="text" id="messageinput" />
<button id="notifybutton">Send Message</button>
</div>
<script src="Scripts/jquery-2.1.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.2.0.min.js"></script>
<script src="signalr/hubs"></script>
<script type="text/javascript">
jQuery(document).ready(function ($)
{
var $hub = $.connection.notificationHub;
$.connection.hub.start();
$(document).on("click", "#notifybutton", {}, function (e)
{
e.preventDefault();
var $message = $("#messageinput").val();
$hub.server.sendNotifications($message);
});
});
</script>
display.html
<div>
<ul id="messages"></ul>
</div>
<script src="Scripts/jquery-2.1.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.2.0.min.js"></script>
<script src="signalr/hubs"></script>
<script type="text/javascript">
jQuery(document).ready(function ($)
{
var $hub = $.connection.notificationHub;
$hub.onRecieveNotification = function (message)
{
$("#message").append($("<li></li>", { text: message }));
}
$.connection.hub.start();
});
</script>
是'$ hub.onRecieveNotification'不確定的,即使它去'$ .connection.hub.start()之後;'? – Artyom
請參閱[「應該在其標題中包含」標籤「?」](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中共識是「不,他們不應該」! –
@Artem我用.client試了一下,發現顯示的開始從未被觸發,不知道爲什麼,在一個新的HTML文件中重新編寫了相同的代碼,並且它工作正常。謝謝 – JadedEric