1

我似乎在 ServiceStack 和 SignalR 之间有一个奇怪的问题。两种服务都工作正常,没有奇怪的活动,SignarlR Hub 成功加载并按预期工作。ServiceStack 通过 Google 进行身份验证,没有问题。

但是,一旦我使用 SS 登录该站点,一切都很好,当我导航到使用 SignalR 的页面时,问题似乎出现了。一旦 SignalR 的 javascript 初始化,它似乎会清除服务器上 ServiceStack 的所有会话信息。这意味着如果我刷新页面,我会被重定向回登录。但是,如果我按原样离开页面,SignalR 通知会按预期到达。

有人知道会发生什么吗?

我的简单代码基于 StockTicker 示例。这里是:

<HubName("salesTicker")> _

公共类 VerificationLogHub 继承 Hub 私有 ReadOnly _verificationTicker 作为 VerificationLogTicker

Public Sub New()
    Me.New(VerificationLogTicker.Instance)

End Sub

Public Sub New(verTicker As VerificationLogTicker)
    _verificationTicker = verTicker
End Sub

Public Function GetAllLogs() As IEnumerable(Of UI_GuestBook)
    Return _verificationTicker.GetAllLogs()
End Function

Public Sub start()
    _verificationTicker.StartMonitoring()
End Sub

Public Sub [stop]()
    _verificationTicker.StopMonitoring()
End Sub

结束类

Ticker 类与 StockTicker 示例几乎相同,唯一的区别是,我从数据库中获取数据,显然不会生成随机股票价格。

这是让球滚动的页面javascript。

<script type="text/javascript">

    $(function () {
        var ticker = $.connection.salesTicker;
        $.connection.hub.start().pipe(init);


        function init() {
            return ticker.server.getAllLogs().done(function (guestBooksLog) {
                ticker.server.start();
                if(guestBooksLog.length>0)
                    updateStats(guestBooksLog[0]);
            });
        }

        $.extend(ticker.client, {
            updateStockPrice: function (GuestBook) {
                updateStats(GuestBook);
            }
        });
    });

    function updateStats(GuestBook) {
        $('#spanLsRate').html((GuestBook.Rate * 100).toFixed(1));
        $('#spanDcCount').html(GuestBook.TotalCount);

        console.log("Stats updated...");


    }

4

0 回答 0