1

ServiceStack と SignalR の間に奇妙な問題があるようです。両方のサービスは正常に動作し、異常なアクティビティはありません。SignarlR ハブは正常に読み込まれ、期待どおりに動作します。ServiceStack は Google 経由で認証します。問題はありません。

ただし、SS でサイトにサインインすると、すべて問題なく、SignalR を使用しているページに移動すると問題が発生するようです。SignalR の JavaScript が初期化されると、サーバー上の ServiceStack のすべてのセッション情報がクリアされるようです。つまり、ページを更新すると、ログインにリダイレクトされます。ただし、ページをそのままにしておくと、SignalR 通知が期待どおりに届きます。

何が起こっているのか、誰にもアイデアはありますか?

私の単純なコードは、StockTicker の例に基づいています。ここにあります:

<HubName("salesTicker")> _

パブリック クラス VerificationLogHub は、ハブ プライベート 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