标签: long-polling

Jquery Ajax调用崩溃的Internet Explorer?

我必须承认,这是我在这个网站上的第一篇文章,所以如果我做错了(格式化等),我会在建议中道歉.

无论如何,我正在使用javascript(和jQuery)创建一种mmo,到目前为止,Chrome,Safari,Firefox等都运行良好.但是,我发现在某个地方,Internet Explorer崩溃了.

通过重现崩溃,我把它缩小到这个代码:

function getUpdates(){
var data={uid:playerName,area:1,mid:lastMessage};
$.ajax({ 
    url: "getUpdates.py", 
    timeout: 32000,
    data: data,
    type:"GET",
    complete: function(obj, textStatus){
            //handleUpdates(obj);
        getUpdates();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

应该在很长一段时间内轮询更新.但是,在一次回复之后的IE中,这段代码陷入无限循环,这会使浏览器崩溃.只有在没有服务器响应时,每次回复后似乎都不会崩溃.

注意,表示"完成:......"的行已被尝试为:

success: function(...){getUpdates();...},
error: function(...){getUpdates();...}
Run Code Online (Sandbox Code Playgroud)

出现同样的问题.

crash jquery internet-explorer polling long-polling

4
推荐指数
1
解决办法
4425
查看次数

java中的长轮询

我已经为长轮询编写了服务器端代码。我想用java编写客户端程序。因此,根据长轮询,客户端发送一个请求,该请求得到服务器的帮助,服务器在发生事件时响应该请求,然后客户端发送一个新请求。

所以我面临的麻烦是用java编写的客户端。发送请求后,如果服务器已响应,如何继续检查客户端。我应该以什么时间间隔继续向服务器发送请求。我完全糊涂了。我是 Web 技术的初学者。我试过谷歌搜索这个,但所有的例子都是基于客户端是一个 java 脚本或 JSP。任何人都可以提供指向正确教程的链接,其中客户端是 Java HTTp 应用程序或提供一个示例(即实现长轮询)。

java client long-polling

4
推荐指数
1
解决办法
2万
查看次数

从服务器端C#长轮询

我更像是一个php程序员,而不是c#,但请耐心等待.

我有一个应用程序连接到一个不时发送推送消息的API.它使用长轮询作为机制.我已经研究过使用signalR,但所有示例都显示服务器正在推送消息.我希望服务器通过longpolling接收消息.有谁知道如何做到这一点?

c# long-polling

4
推荐指数
1
解决办法
3163
查看次数

期望来自服务器端的一次性响应时,长轮询vs websocket

我已经阅读了很多关于实时推送通知的文章.简历是websocket通常是首选技术,只要您不关心100%的浏览器兼容性.然而,有一篇文章指出了这一点

长轮询 - 可能在您与服务器交换单个呼叫时,服务器正在后台进行一些工作.

这正是我的情况.用户按下一个按钮,在服务器端启动一些复杂的计算,一旦答案准备就绪,服务器就会向客户端发送推送通知.问题是,我们可以说,对于一次性响应的情况,长轮询是比websockets更好的选择吗?或者除非我们担心过时的浏览器支持,如果我要从头开始启动项目,那么在涉及推送协议时,websockets应该总是优先考虑长轮询?

long-polling websocket

4
推荐指数
1
解决办法
4403
查看次数

将基本轮询变成长轮询

我正在开发一个聊天应用程序,到目前为止,我每两秒轮询一次我的服务器以获取消息。为了使聊天更即时,我想实现长轮询。我正在尝试实现这一点为它JS.info 指南,但我一直没有达到我打算达到的目标。任何人都可以为我的案例指出这一点吗?

我在 react 中有一个自定义钩子,现在是基本的轮询。

仅供参考:我是初学者,现在不会使用 WS 或 Socket.io。在这一点上对我来说太过分了。

提前致谢!

export default function useGetChatMessages(_id) {
  const [chatMessages, setChatMessages] = React.useState([]);

  React.useEffect(() => {
    const interval = setInterval(() => {
      getChatMessages(_id).then(fetchedChatMessages => {
        setChatMessages(fetchedChatMessages);
      });
    }, 2000);
    return () => clearInterval(interval);
  }, [_id]);

  return chatMessages;
}
Run Code Online (Sandbox Code Playgroud)

这是我使用 express 的服务器功能。我想它应该在这里实现而不是在我的钩子中

router.get('/:id/messages', async (request, response) => {
  try {
    const chat = await Chat.findById(request.params.id);
    response.json(chat.messages);
  } catch (error) {
    console.log(error);
    response.status(500).json({ message: error.message });
  }
});
Run Code Online (Sandbox Code Playgroud)

javascript polling long-polling reactjs

4
推荐指数
1
解决办法
1821
查看次数

JSONP Long Polling总是加载

我正在使用JSONP进行长轮询,并且firefox不断弹出"正在加载"的微调器,使页面看起来好像还没有完成加载.有没有办法压制这个?

我被告知Orbited团队有抑制这个的黑客,但通过Orbited.js代码我无法弄清楚它们是什么.任何帮助将不胜感激.

comet orbited long-polling

3
推荐指数
1
解决办法
2534
查看次数

(全功能)长轮询服务器如何抽象地工作

由于您使用的是事件循环而不是线程,因此实际服务器看起来如何?

我知道它使用事件循环,但是你如何分离请求?而且你如何防止你的服务器运行速度非常慢(因为它,我认为,因为它是无线的,所以一次只能推送一件事?)

某种伪代码会很棒.

原谅我的无知; 当然,如果某个地方用非基本的方式解释它"这样就足够了,直到你有1000名游客的方式",我很高兴知道它.

web-applications http long-polling

3
推荐指数
1
解决办法
1058
查看次数

Ajax Long Polling

我最近在StackOverflow上询问了一个关于我的函数的问题,人们建议我使用Ajax Long Polling.我花了几天的时间来研究这个主题,并尝试编写基本的长轮询代码,但没有一个能够工作,我根本无法完成任何工作.

这是我的基本功能:

    <script language='javascript' type='text/javascript'>
    var interval=self.setInterval("checkformessages()",4000)
    function checkformessages() {
    $('#incomingmessages<?php echo $otherchatuser ?>').load('checkfornewmessages.php?username=<?php echo $username; ?>&otherchatuser=<?php echo $otherchatuser; ?>');
    }
    </script>
Run Code Online (Sandbox Code Playgroud)

有人能够告诉我如何将其转换为基本的长轮询功能,或者甚至直接指向我需要到达的路径.很感谢任何形式的帮助.谢谢!

ajax jquery long-polling

3
推荐指数
1
解决办法
5678
查看次数

使用iframe进行"长轮询"而不会导致浏览器闪烁

我需要检查是否将命令写入txt文件以更新Web浏览器中的3D窗口.这就是所谓的"推送"技术或长轮询以通知客户端.由于浏览器必须是 Internet Explorer,我有点受限.

我想出了一个使用隐藏iframe的解决方案,该iframe调用一个php脚本,每秒重新加载以检查txt文件.

<iframe noresize scrolling="no" frameborder="0" name="loader" src="loader.php">  
Run Code Online (Sandbox Code Playgroud)

loader.php基本上是这样做的:

//check txt and get commands
<body onLoad="window.setInterval('location.reload()',1000);"></body>
Run Code Online (Sandbox Code Playgroud)

我看到的唯一问题是网页浏览器中的每一秒重新加载按钮都会闪烁.虽然窗口没有闪烁,只是按钮,我仍觉得有点烦人.

有没有更好的解决方案来解决这个问题,仍然与IE兼容?

ajax iframe internet-explorer long-polling

3
推荐指数
1
解决办法
1074
查看次数

从哪里开始,在Faye for iOS中实施长轮询

我使用内置的MZFayeClient(https://github.com/m1entus/MZFayeClient)WebSocket.我需要实现长轮询技术.怎么做?从哪儿开始?没有关于如何操作的信息(或足够的信息),或者是否存在具有长轮询的Faye库.

long-polling ios faye

3
推荐指数
1
解决办法
464
查看次数