当前位置: 首页 > 软件库 > 服务器软件 > HTTP服务器 >

icomet

支持百万并发连接的comet服务器
授权协议 未知
开发语言 C/C++ PHP JavaScript HTML/CSS
所属分类 服务器软件、 HTTP服务器
软件类型 开源软件
地区 国产
投 递 者 吴和硕
操作系统 Windows
开源组织
适用人群 未知
 软件概览

icomet 是一个使用 C++ 语言开发的支持百万并发连接的 comet 服务器, 使用了 libevent 网络库. 支持并发连接数高, 内存占用少, 性能优越. 支持的浏览器和操作系统平台包括: Safari(iOS, Mac), Firefox/Chrome(Windows, Mac), IE6+.

安装和启动

make
./icomet

curl -v "http://127.0.0.1:8100/sub?cname=12&seq=1"
# open another terminal
curl -v "http://127.0.0.1:8000/push?cname=12&content=hi"使用方法:

JavaScript API 使用

var comet = new iComet({
    sign_url: 'http://' + app_host + '/sign?obj=' + obj,
    sub_url: 'http://' + icomet_host + '/sub',
    callback: function(msg){
        // 收到服务器推
        alert(msg.content);
    }
});

Java/Android API 使用

项目: https://github.com/DuoZhang/iCometClient4j/

内存占用

Connections VIRT RES
0 39m 24m
100,000 302m 288m
200,000 579m 565m
500,000 1441m 1427m
1,000,000 2734m 2720m

2.7KB per connection.

  • 最近在做icomet到f-stack的集成,需要对icomet进行改造,因此需要对icomet的Makefile文件进行解读和修改。   1.Makefile文件在icomet-master的同级目录下,具体代码如下: $(shell sh build.sh 1>&2) include build.mk .PHONY: all tools clean all:         mkdir -p l

  • 持百万连接和 comet/push 服务器 icomet 日前提供了可用于 Android 移动开发的 Java API – iCometClient4j, 用于实现手机上的消息推送功能. 结合 icomet 的 HTTP endless chunk 模式, 可提供节省电池的长连接服务. icomet  1、修改其中的Http通信为Socket通信;2、去掉返回信息自动关闭机制;3、增加过期服务自

  • 官方文档 https://github.com/ideawu/icomet/wiki 如何实现的长连接: noop: 心跳消息+HTTP endless chunk 以班级ID为主键,进行班级通道的创建: 频道命名: class_id=10----->channel:channel_class_id_10 需要区分8100与8000的含义 一般人员可以订阅,但不是每个人都可以发布。 创建频道(谁来

  • 1. 引入 icomet.js 这里点击下载: https://github.com/ideawu/icomet 2. 引入相关的详细配置 var app_host = '你的服务器域名或ip', icomet_host = '你所配置icomet服务器所在的域名或ip'; var comet = new iComet({ channel: 'abc', //推送消息的频

  • RT,求教,我看logs/log.txt 全部是debug信息,这种问题如何排查呢?会不会是内存不够导致死掉了呢?我的内存比较的低 【log信息:】 2014-07-10 12:11:40.340 [DEBUG] server.cpp(241): 218.58.77.117:4323 sub result, seq: 6, subs: 10 2014-07-10 12:11:40.450 [DEB

  • 1、编辑一个脚本 vi /usr/local/watchicomet.sh #!/bin/bash sn=`ps -ef | grep ./icomet-server | grep -v grep |awk '{print $2}'` echo $sn if [ "${sn}" = "" ] #如果为空,表示进程未启动 then nohup service icomet start > ic

  • 公司服务器要迁机房,运维在配置icomet服务时问我安装哪个版本的,我直接回复说安装https://github.com/ideawu/icomet这上最新版的即可,其实和旧机房服务器上的版本号一样,都是0.2.3,但目前从https://github.com/ideawu/icomet上安装的包已经发生了变化,即如果还按原先上面的说明: curl -v "http://127.0.0.1:810

  • ideawu 提供了一个 c1000k 代码: https://github.com/ideawu/c1000k 要测试c1000k 主要两个问题: 是server 端, 每个sokcet 大约需要占用0.5M内存(内核sokcet缓冲区内存), 所以总共需要500G内存. client端, client 只能开大约3w-5w个client端口(对每个server ip+port, 只能有3w-5

 相关资料
  • 主要内容:1、到底什么是连接?,2、为什么每次发送请求都要建立连接?,3、长连接模式下需要耗费大量线程资源,4、Kafka遇到的问题:应对大量客户端连接,5、Kafka的架构实践:Reactor多路复用,6、优化后的架构是如何支撑大量连接的?这篇文章,给大家聊聊:如果你设计一个系统需要支撑百万用户连接,应该如何来设计其高并发请求处理架构? 1、到底什么是连接? 假如说现在你有一个系统,他需要连接很多很多的硬件设备,这些硬件设备都要跟你的系统来通信。 那么,怎么跟你的系统通信呢? 首先,他一定会跟

  • 我目前正在开发一个支持保活连接的多线程代理服务器。在处理来自火狐浏览器的请求时,我看到了一些奇怪的问题。我使用localhost:10001/http://url连接到我的本地代理,我可以访问这个主机上的所有链接。过程如下。1.创建一个套接字,将其绑定到端口10001 2.接受连接,如果客户端连接了fork()3.继续将客户端请求处理为持久连接。 现在的问题是,当我在Firefox中打开一个新选项

  • 问题内容: 我正在构建一个具有实时供稿(类似于Facebook的新闻供稿)的Web应用程序,我想通过长轮询机制对其进行更新。我了解使用Python,我的选择几乎是使用Stackless(从Comet wsgi示例构建)或Cometd + Twisted。不幸的是,关于这些选项的文档很少,我无法在网上找到有关使用彗星的生产规模用户的良好信息。 有人在生产系统中成功地在Python上实现了Comet吗

  • 问题内容: 我想编写一个脚本来测试所有链接的服务器,并返回唯一已连接的服务器(可以肯定只有一个)。 这是我当前的脚本,但是我被困在这一点上: 但是使用此查询,代码无法在第一次迭代时停止,因为它无法连接到表的第一台服务器。这是错误消息: 链接服务器“ server1”的OLE DB提供程序“ MSDASQL”返回了消息“通信链接失败; -10709连接失败(连接超时已过期)”。消息7303,级别16

  • 我在使用Reformation的RxJava支持链接观察对象时遇到了问题。我可能误解了如何使用它,否则它可能是改装中的一个bug。希望这里有人能帮我理解发生了什么事。编辑:我正在对这些响应使用MockRestaAdapter—这可能与RxSupport实现略有不同有关。 这是一个假的银行应用程序。它正在尝试进行传输,传输完成后,它应该执行帐户请求以更新帐户值。这基本上只是我试用flatMap的一个

  • 问题内容: 我正在尝试Go-并希望创建一个可以远程登录,发送命令和接收响应的TCP服务器。 上面的代码片段每次都会关闭连接,将我踢出终端会话。但是我真正想要的是能够保持连接打开以进行更多的I / O操作。如果我只是删除,则服务器似乎挂在某处,因为它不再获得任何响应。 我解决此问题的方法是让我的handleRequest方法无休止地循环,以便它在收到消息之前永远不会退出。这是否合适- 还是有更好的实

  • 我目前正在考虑将gRPC用于Java应用程序(客户端)和C++服务器之间的进程间通信。RPC调用将使用非常旧的C++代码库的功能,这肯定不是线程安全的。通常,Java客户机将启动更多的gRPC服务器实例,并且仅与每个服务器实例有一个连接。是否有任何方法可以确保gRPC服务器只接受一个连接而拒绝所有其他连接尝试。否则,我需要在RPC函数中引入一些全局锁,以获得100%正确的服务器实现。

  • 问题内容: 我想在我们的其中一台Web服务器上进行一些性能测试,以了解服务器如何处理大量持久连接。不幸的是,我对HTTP和Web测试不是很熟悉。这是到目前为止我已经获得的Python代码: 我的主要问题是: 如何保持这些连接的生命? 我设置了很长的超时时间,但这是一种非常粗糙的方法,我甚至不确定它是否会影响连接。是否只是偶尔偶尔请求一两个字节? (此外,与我代码末尾的丑陋块相比,还有一个更好的过程