Я использую Visual studio 2010 и jquery signal r 1.1.4 для отправки уведомлений, как у нас в facebook. Ниже метод используется концентраторКлиентский код Signal R не вызывает HUb
public class BroadcastMessage:Hub
{
public void BroadcastNotifications(string message)
{
Utility.AddNotification(message); //to save data to database
int UnreadCount = Utility.getUnreadMessageCount(); //get the unread count
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<BroadcastMessage>();
context.Clients.All.receiveNotification(message, UnreadCount);
}
public void SendMessages()
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<BroadcastMessage>();
context.Clients.All.updateMessages();
}
}
И частичный вид, где у меня есть текст Ого, чтобы войти в сообщение с уведомлением и кнопку посыла @model MyProject.Models.Notification
@
using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Notification</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Message)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Message)
@Html.ValidationMessageFor(model => model.Message)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LogonID)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LogonID)
@Html.ValidationMessageFor(model => model.LogonID)
</div>
<p>
<input type="button" id="broadcastNotification" value="Send" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
<script src="~/Scripts/jquery-1.12.0.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.signalR-1.1.4.js" type="text/javascript"></script>
<script src="~/signalr/hubs"></script>
<script type="text/javascript">
$(function() {
$.connection.hub.logging = true;
var proxy = $.connection.broadcastMessage;
$.connection.hub.start().done(function() {
$('#broadcastNotification').click(function() {
proxy.server.broadcastNotifications($("#Message").val()).done(function() {
proxy.server.sendMessages();
});
});
});
});
</script>
}
Global.asax файл
protected void Application_Start()
{
//To register the default Hubs route
RouteTable.Routes.MapHubs();
}
здесь мой метод сигнала r r не запускается при нажатии кнопки «Отправить». Я попробовал http://localhost:XXXX/signalr Там я получил ошибку «Ошибка протокола: Неизвестный транспорт». может кто-нибудь покажет мне, какую ошибку я сделал здесь.
Вы можете добавить консольный вывод хрома в вашем посте? –