2013-10-10 27 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