https://github.com/ideawu/icomet
A C1000K comet/push server built with C++, for web and mobile app
https://github.com/ideawu/icomet
Last synced: 22 days ago
JSON representation
A C1000K comet/push server built with C++, for web and mobile app
- Host: GitHub
- URL: https://github.com/ideawu/icomet
- Owner: ideawu
- License: bsd-3-clause
- Created: 2013-09-05T12:58:00.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2018-11-04T18:50:48.000Z (over 6 years ago)
- Last Synced: 2024-10-11T23:14:52.262Z (7 months ago)
- Language: C++
- Homepage:
- Size: 3.36 MB
- Stars: 1,523
- Watchers: 220
- Forks: 502
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
- my-awesome - ideawu/icomet - 11 star:1.5k fork:0.5k A C1000K comet/push server built with C++, for web and mobile app (C++)
README
icomet
======A C1000K comet/push server built with libevent.
iComet is powerfull, can be used as the messaging server of many applications, such as [web chat](http://www.ideawu.com/icomet/chat.html), mobile application, desktop application etc.
iComet provides a easy-to-use JavaScript library, with iComet js lib, you can build a web app that needs server-push feature very fast.
## Documentation
[https://github.com/ideawu/icomet/wiki](https://github.com/ideawu/icomet/wiki)
## iComet's role in web system and mobile system

### The work process of iComet in your system

## Compile and Run
Compile:
```shell
wget --no-check-certificate https://github.com/ideawu/icomet/archive/master.zip
unzip master.zip
cd icomet-master/
make
```Start icomet server
./icomet-server icomet.conf
# or run as daemon
./icomet-server -d icomet.conf
# stop
./icomet-server icomet.conf -s stopMake a test via curl:
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 Library Usage
```javascript
var comet = new iComet({
channel: 'abc',
signUrl: 'http://127.0.0.1:8000/sign',
subUrl: 'http://127.0.0.1:8100/sub',
callback: function(content){
// on server push
alert(content);
}
});
```### Supported Platforms and Browsers
| Browser | Platform |
| --------| -------- |
| Safari | iOS(iPhone, iPod, iPad), Mac |
| Firefox | Windows, Mac |
| Chrome | Windows, Mac |
| IE6, IE8 | Windows |## Java/Android API
* [https://github.com/DuoZhang/iCometClient4j](https://github.com/DuoZhang/iCometClient4j)
* [Android App Demo](https://github.com/ideawu/icomet-demos)## Run the chat demo
1. Compile and start icomet server
1. Drag and drop the file demo/web/chat.html into one web browser
1. Drag and drop the file demo/web/chat.html into another different web browser
1. Start chatting!## Live demo
This live demo is based on https://github.com/ideawu/icomet-demos, which has buddy list, chat history, and other features.
Live Demo: http://www.ideawu.com/icomet/chat.html
## Nginx + icomet
You can integrate icomet with nginx. If you are running you website on port ```80``` with domain ```www.test.com```. That is you visit your website home page with this url:
```
http://www.test.com/
```Then you want to run icomet on the same server with port ```80```, for the concern of firewall issue. You can config nginx to pass request to icomet:
```
location ~ ^/icomet/.* {
rewrite ^/icomet/(.*) /$1 break;proxy_read_timeout 60;
proxy_connect_timeout 60;
proxy_buffering off;
proxy_pass http://127.0.0.1:8100;
}
```Then, this url is used to subscribe to icomet channel xxx:
```
http://www.test.com/icomet/sub?cname=xxx
```## Misc
[icomet 源码分析](http://idning.github.io/icomet-cr.html)
## Users
* xiaozhu.com
* testin.cn## QQ group
* 389083972