【问题标题】:socket.io start and complete eventssocket.io 开始和完成事件
【发布时间】:2012-05-30 06:46:45
【问题描述】:

我正在使用带有 express 3 的 socket.io 来构建一个应用程序。

我想将加载器动画设置为在收到消息时显示,并在收到消息时隐藏它。 就像 jQuerys .ajaxStart.ajaxComplete 一样,我可以在其中执行 $('#loader').show(); 等操作

我可以在 socket.io 中捕获任何事件来实现这一点吗?

【问题讨论】:

    标签: javascript node.js express socket.io


    【解决方案1】:

    您可以使用以下想法实现此目的:

    1. 服务器:发出about_to_start 事件;
    2. CLIENT:在about_to_start 上启用加载器并发出download_ready 事件;
    3. 服务器:在download_ready事件上发送数据,即发出download事件;
    4. CLIENT:在download 事件上对数据进行处理并禁用加载器;

    我就是这样做的。

    顺便问一下:我们是在谈论简单的消息传递系统吗?我认为在这种情况下没有必要这样做。下载不会超过几秒钟,如果会,那么你需要优化应用程序或增加一些马力(即如果流量太大,添加一些机器)。跳过第 1,2 步和第 3 步的一半。在第 4 步中,您只需通知客户:“嘿,您有一条新消息!”。

    【讨论】:

    • 是的,但是有没有办法在全球范围内做到这一点?所以我不必在每个发射事件上都设置它?
    • 这是一个通知系统,一个聊天等等,所以最好把它放在一个地方。
    • @George 唯一的可能是向您的应用程序添加一些自定义方法。而download_ready 事件可以设置一次。您甚至可以将该方法添加到var socket = require('socket.io'); 对象。不过要小心,因为将来可能会发生冲突(假设您要升级 socket.io 库)。
    猜你喜欢
    • 1970-01-01
    • 2019-07-15
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    相关资源
    最近更新 更多