2012-01-07 2 views
0

Как я могу создать/преобразовать этот скрипт в модель в базовой линии, которая может использовать концентраторы SignaR? Например:Базовая модель от концентратора в SignalR

<script type="text/javascript"> 
    $(function() { 
     // Proxy created on the fly 
     var chat = $.connection.chat; 

     // Declare a function on the chat hub so the server can invoke it 
     chat.addMessage = function (message) { 
      alert("message"); 
     }; 

     // Start the connection 
     $.connection.hub.start(); 
    }); 
</script> 

EDIT

Я придумал это:

window.Message = Backbone.Model.extend({ 
    hub: undefined, 
    initialize: function() { 
     this.hub = $.connection.message; 
    }, 
    addMessage: function (message) { 
     alert(message); 
    }, 
    connect: function() { 
     $.connection.hub.start(); 
     var messages = this.hub.getAll();//get messages 
    } 
}); 

, но это не работает из-за следующей ошибки:

эта ошибка: : 55885 Неожиданный код ответа: 200

+1

Что вы пробовали? С какими трудностями вы столкнулись с вашим кодом? Ваш вопрос больше похож на описание работы, которое вы отправили бы веб-разработчику, чем то, что вы спросите в StackOverflow. –

+0

Из того, что я знаю о backbone.js, он требует спокойного URL-адреса, поэтому это более чем вероятно не сработает. Кроме того, я не большой поклонник backbone.js с ASP.NET MVC, потому что это похоже на синдром Hammer Nail. ASP.NET MVC отлично справляется с MVC. В тех случаях, когда этого не хватает, привязываются данные от вызовов Ajax, Knockout.js, по-видимому, лучше подходит. Магистраль неплохая, но это в конечном итоге дублирует ваши усилия на стороне сервера MVC, а затем на стороне клиента MVC, или вы обойдете MVC-сервер в пользу клиента. – LCarter

ответ

1

Если вы используете настройки по умолчанию, SignalR сначала попытается отправить опрос веб-камер на сервер. Номер: 55885 - это просто номер порта вашего сервера. Протокол Websockets ожидает код состояния ответа 101 (см. http://dev.w3.org/html5/websockets/).

Если вы используете IIS, если вы не запускаете Windows 8 с ASP.NET 4.5 вашего веб-сервера, он не будет распознавать запрос веб-сокетов и (начать спекуляцию) рассматривать его как обычный запрос получения и вернуть код состояния 200 (OK) (что является неожиданным ответом в глазах инициатора websockets. Когда это произойдет, SignalR снова возвращается к longpolling.

Это не может ответить на ваш вопрос, но это поможет вам понять ошибку вы получите (что, скорее всего, не является причиной, почему ваш код не работает)

+0

THX Я только что нашел этот проект с открытым исходным кодом https://github.com/rickschott/fire-camp/tree/master/BackboneMVC3SignalR, который сильно меня подтолкнул. –

Смежные вопросы