我已經爲POC創建了一個樣本signalR。 我想從Global.asax調用一個集線器方法,並將一個字符串值傳遞給客戶端。 我的信息轂是: -來自Global.asax的SignalR調用方法(MVC 3)
[HubName("messageHub")]
public class MessageHub : Hub
{
public static IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MessageHub>();
public void Message()
{
/*
* services and updates the messages
* property on the PushMessage hub
*/
//IHubContext context = GlobalHost.ConnectionManager.GetHubContext<SignalR_Error_Logging.Models.ErrorModel>();
List<GenerateError.Repository.ErrorModel> model = ErrorRepository.GetError();
context.Clients.pushMessages(model[0].ErrorMessage);
}
我在layout.cshtml定義的兩個腳本的
<script type="text/javascript" src="../../Scripts/jquery-1.6.4.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.signalR-0.5.3.js"></script>
我的index.html是如下: -
@{
ViewBag.Title = "Receive Error message";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script src="/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var myHub = $.connection.messageHub;
myHub.pushMessages = function (value) {
console.log('Server called addMessage(' + value + ')');
$("#messages").append("<li>" + value + "</li>");
};
$("#btnMessage").click(function() {
myHub.message();
});
$.connection.hub.start().done(function() { alert("Now connected!"); }).fail(function() { alert("Could not Connect!"); });
});
</script>
<h2>Receive Error Messages</h2>
<ul id="messages"></ul>
<input type="button" id="btnMessage" value="Get Error" />
在全球.asax 我寫過
SignalR_Error_Logging.SignalRHub.MessageHub hub = new SignalRHub.MessageHub();
hub.Message();
In Application_Start();
我無法在我的UI中顯示消息(即Index.cshtml)。
的事情,我曾嘗試: -
- 運行該應用程序爲IIS。
更改創建HubContext的方式。
IHubContext _context = GlobalHost.ConnectionManager.GetHubContext<MessageHub>(); context.Clients.notify("Hello world");
if (Clients != null) { Clients.shootErrorMessage(message); this.Clients.shootErrorMessage(message); }
任何建議的鏈接???
當我通過在Index.html中創建按鈕來調用我的hub方法時,它工作正常。
道歉沒有框架我的問題妥善!
謝謝.. :)你絕對正確。 但是,當我有一個實例運行,我重新啓動我的VS2012。它應該工作。 無論如何..我想通過調用我的中心方法是錯誤的。 再次感謝! – Shubh
似乎如果答案是正確的,它應該被標記爲這樣。 –