我正在使用ASP.NET MVC 4和SignalR 2.1.1.我的网站适用于所有浏览器中的大多数用户,但只有特定isp网络上的特定用户才会出现错误.
错误是这样的:
The connection to ws://domain.com/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=78ZpJ007jmlLSBbVzDVbfpYahHsveD3x8%2Bc5PC9h%2FgeOz5zNgE8SaKWaQAasGNLe%2BvJeI6ux6IqW0E8WQWqP6Ps%2FXjc8WPbG7G47oHSxRSx7nVj0leVa1DdXzEXnLQ%2BA&connectionData=%5B%7B%22name%22%3A%22homehub%22%7D%5D&tid=4 was interrupted while the page was loading.
Run Code Online (Sandbox Code Playgroud)
对于收到此错误的相同用户,使用其他网络(同一浏览器/计算机/手机)登录Internet可解决此问题.
到目前为止,我只看到有关此错误的问题,将问题指向浏览器,但在我的情况下,使用具有不同网络的相同浏览器可以解决问题.
任何人都知道如何解决这个问题吗?
更新1: 我注意到客户端方法确实有效,这是服务器方法不起作用.
我是什么意思?:
我有一个在线用户列表,当用户进入和退出网站时,会调用更新用户名列表的信号器客户端方法:
hub.client.addOnlineMember = function (member) {
var newMember = addMember(member);
memberList.append(newMember);
};
hub.client.removeOnlineMember = function (member) {
var newMemberId = '#' + member;
$(memberListName + ' ' + newMemberId).remove();
};
Run Code Online (Sandbox Code Playgroud)
但是,当尝试从服务器加载消息时,它的功能不起作用:
$('#LoadMore').click(function () {
hub.server.loadTopics(page);
});
Run Code Online (Sandbox Code Playgroud)
更新2: 我添加了日志记录:
$.connection.hub.logging = true;
Run Code Online (Sandbox Code Playgroud)
以下是调查结果:
The connection to ws://domain.com/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=rR8%2BSK%2BC%2FtuzPqIGKgPrUNORzBz2kP0WUmXJsURP70Zsj6RK1fOi5tUN1UGEQPntGwoEvwinMkPCXRTyliLwzfLoOBl%2BkCWoBAkAqIFYaDVk3X1MG8dQERl8Or%2F4%2Filp&connectionData=%5B%7B%22name%22%3A%22hub%22%7D%5D&tid=6 was interrupted while the page was loading. jquery.signalr-2.1.1.min.js:8
Synchronous XMLHttpRequest on the …Run Code Online (Sandbox Code Playgroud) 我想使用我网站的访问者收集一些信息.
我需要的是每个访问者ping 3个不同的主机名,然后将以下信息保存到数据库中.
Visitor IP, latency 1,latency 2, latency 3
Run Code Online (Sandbox Code Playgroud)
当然,一切都必须对访客透明,而不会以任何方式打扰他.这可能吗?能给我举个例子?是否有任何jQuery插件或更容易的东西
编辑
这是我到目前为止jsfiddle.net/dLVG6但数据太随机了.它从50跳到190