标签: comet

AJAX 服务器推送

好吧,我对这项技术有疑问,更准确地说是在它的实现方面,在互联网上找不到好的例子,因为它涉及 javascript 和 php,只是,你会有一些链接,我可以在其中找到这个东西真的有效吗?

ajax comet server-push

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

定期短轮询是否在服务器上扩展?

我们正在开发一个站点,允许用户向其他用户发送半实时事件。当用户有新事件时,UI 将显示一个图标(非常标准的东西)。

我读过定期短轮询的扩展性不如 websockets,因为它给 web 服务器带来了更大的压力。我不太确定为什么会这样?

我们正在使用 tomcat NIO(每个线程比率没有一对一的连接)。据我了解,Tomcat NIO 非常擅长使用少量线程处理较长的 HTTP 连接超时。

因此,如果定期轮询时间小于连接超时,则轮询不应创建另一个 TCP 握手,因为它只会重用现有的 HTTP 1.1 连接。

因此,上述内容似乎不会对服务器造成太大压力。它可能不像长轮询或 websockets 那样实时,但我不明白为什么它不应该扩展(假设服务器可以快速响应指示新事件的响应——我们使用内存中的并发哈希图,所以这应该很快,没有必要的数据库访问)。

我错过了什么吗?

谢谢,-亚当

java ajax tomcat comet

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

为什么在Rails中while循环+ sleep + ActiveRecord.find不应该返回记录呢?

我正在尝试在我的Rails应用程序中实现一个彗星方法.我有以下内容:

def poll
  records = []
  start_time = Time.now.to_i

  while records.length == 0 do
    records = Something.find(:all,
        :conditions => { :some_condition => false})

    if records.length > 0
      break
    end

    sleep 1

    if Time.now.to_i - start_time >= 10
      break
    end
  end

  responseData = []

  records.each do |record|
    responseData << {
      'something' => record.some_value
    }

    # Flag message as received.
    record.some_condition = true
    record.save
  end

  render :text => responseData.to_json
end
Run Code Online (Sandbox Code Playgroud)

现在,当我手动转到URL时,它会在那里等待10秒并按预期超时.如果我修改我的数据库以便Something.find()返回记录然后再次转到URL,则调用立即返回.

但是,如果我转到URL,然后我快速对数据库运行更新,以便Something.find()应该找到记录,它只是坐在那里直到它在10秒后超时.我希望在我做出更改并返回后,它应该立即看到对数据库的更改.

有什么想法吗?我也愿意接受有关改进的建议.

ruby-on-rails comet

0
推荐指数
1
解决办法
536
查看次数

什么是实时系统的 Comet?

Comet 是一种架构风格,而 Websockets/HTTP Streaming/SSE/BOSH/Bayeux 是这种架构风格的不同实现吗?

comet cometd

0
推荐指数
1
解决办法
624
查看次数

我需要知道COMET是如何工作的

我想在PHP中实现彗星 ...我知道ajax是如何工作的,但我试图研究使用彗星的长轮询服务器推送,但我面临问题,弄清楚它是如何工作的.所以,请你帮我...

javascript php ajax comet

-1
推荐指数
1
解决办法
755
查看次数

标签 统计

comet ×5

ajax ×3

cometd ×1

java ×1

javascript ×1

php ×1

ruby-on-rails ×1

server-push ×1

tomcat ×1