信号器和服务栈

时间:2013-10-10 23:14:27

标签: servicestack signalr

我有一个仅处理api调用的服务堆栈服务器应用程序(休息)。 我正在尝试实现我找到的功能in this Strathweb.com article

要拨打我的api,我使用网址... / 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(new 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>

1 个答案:

答案 0 :(得分:5)

您正在加载错误的信号器脚本“Scripts \ jquery.signalR.core.js”。它应该是“Scripts \ jquery.signalR-(version).js”