2013-10-10 26 views
3

我有一個只處理API調用(休息)的服務棧服務器應用程序。 我想實現我發現的功能in this Strathweb.com article信號和服務棧

爲了調用我的api,我使用url .../api/getthis,它運行良好。

我添加了IncomingHubAttribute和OutgoingHubAtttributes,並用它們裝飾我的方法,並調用了方法,這一切都很好。

我可以瀏覽到localhost:1234/signalr/hubs,我看到生成的js 但是當我瀏覽到localhost:1234/log.html在文章中描述我得到的是沒有定義 * hub.client。 *

,我有以下我APPHOST文件...

//Switch ServiceStack’s mode of operation to buffered, 
PreRequestFilters.Add((req, res) => req.UseBufferedStream = true); 
... 

public override void Configure(Funq.Container container) 
{ ... 
RouteTable.Routes.MapHubs(); 

我看了一下不必添加

調用setConfig(新EndpointHostConfig {RawHttpHandlers ...

但是不完全理解什麼會被路由到哪裏,我覺得我很親密

這是我log.html文件

<html> 
<head> 
</head> 
<body> 
<ul id="messages"></ul> 
</body> 

<script type="text/javascript" src="Scripts\jquery-1.6.4.js"></script> 
<script type="text/javascript" src="Scripts\jquery.signalR.core.js"></script> 
<script type="text/javascript" src="/signalr/hubs"></script> 

    <script type="text/javascript"> 
     $(function() { 
      var hub = $.connection.servicelog;//<---- **this does not seem to get resolved** 


      hub.client.log = function (data) { 
       $('#messages').prepend('<li>' + data.Time + " - " + data.Data + '</li>'); 
      }; 

      hub.client.logMessage = function (data) { 
        $('#messages').prepend('<li>' + data.Time + " - " + data.Data.Id + " " + data.Data.Name + '</li>'); 
      }; 

      hub.client.logArray = function (data) { 
       $('#messages').prepend('<li>' + data.Time + " - " + data.Data + '</li>'); 
      }; 

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

回答

5

您正在加載一個不正確的signalr腳本 「腳本\ jquery.signalR.core.js」。它應該是「腳本\ jquery.signalR-(版本).js」

+0

這樣做 - 感謝SOOO很多額外的眼睛。我接受了你的回答:) – Jeff