我似乎在ServiceStack和SignalR之间有一个奇怪的问题。两种服务都运行正常,没有奇怪的活动,SignarlR Hub成功加载并按预期工作。 ServiceStack通过Google验证,没有问题。
但是,一旦我使用SS登录网站,一切都很好,当我导航到使用SignalR的页面时,问题就出现了。一旦用于SignalR的javascript已经启动,它似乎清除了服务器上ServiceStack的所有会话信息。这意味着如果我刷新页面,我会被重定向回登录。但是,如果我按原样离开页面,SignalR通知将按预期到达。
任何人都有任何想法可能会发生什么?
我的简单代码基于StockTicker示例。这是:
<HubName("salesTicker")> _
Public Class VerificationLogHub 继承中心 Private ReadOnly _verificationTicker As 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示例相同,唯一的区别在于,我从我的数据库中获取数据显然不会产生randon股票价格。
这是让网球滚动的页面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...");
}