nginx-push-stream-module

A pure stream http push technology for your Nginx setup. Comet made easy and really scalable.

  • Owner: wandenberg/nginx-push-stream-module
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

h1(#nginx_push_stream_module). Nginx Push Stream Module

A pure stream http push technology for your Nginx setup.

"Comet":comet_ref made easy and really scalable.

Supports "EventSource":eventsource_ref, "WebSocket":websocket_ref, Long Polling, and Forever Iframe. See "some examples":examples bellow.

This module is not distributed with the Nginx source. See "the installation instructions":installation.

Available on github at "nginx_push_stream_module":repository

h1(#changelog). Changelog

Always take a look at "CHANGELOG.textile":changelog to see what's new.

h1(#contribute). Contribute

After you try this module and like it, feel free to "give something back":donate, and help in the maintenance of the project ;)
!https://www.paypalobjects.com/WEBSCR-640-20110429-1/en_US/i/btn/btn_donate_LG.gif!:donate

h1(#status). Status

This module is considered production ready.

h1(#basic-configuration). Basic Configuration

h1(#basic-usage). Basic Usage

You can feel the flavor right now at the command line. Try using more than
one terminal and start playing http pubsub:

h1(#examples). Some Examples  

  • "Curl examples":curl
  • "Forever (hidden) iFrame":forever_iframe
  • "Event Source":event_source
  • "WebSocket":websocket
  • "Long Polling":long_polling
  • "JSONP":jsonp
  • "M-JPEG":m-jpeg
  • "Other examples":wiki

h1(#FAQ). FAQ  

Doubts?! Check the "FAQ":wiki.

h1(#bug_report). Bug report  

To report a bug, please provide the following information when applicable

Which push stream module version is been used (commit sha1)?

Which nginx version is been used?

Nginx configuration in use

"nginx -V" command outuput

Core dump indicating a failure on the module code. Check "here":nginx_debugging how to produce one.

Step by step description to reproduce the error.

h1(#who). Who is using the module?  

Do you use this module? Put your name on the "list":wiki.

h1(#javascript_client). Javascript Client  

There is a javascript client implementation "here":javascript_client, which is framework independent. Try and help improve it. ;)

h1(#directives). Directives

(1) Defining locations, (2) Main configuration, (3) Subscribers configuration, (4) Publishers configuration, (5) Channels Statistics configuration, (6) WebSocket configuration

(head)., Directive, (1), (2), (3), (4), (5), (6), "push_stream_channels_statistics":push_stream_channels_statistics,   x,   -,   -,   -,   -,   -, "push_stream_publisher":push_stream_publisher,   x,   -,   -,   -,   -,   -, "push_stream_subscriber":push_stream_subscriber,   x,   -,   -,   -,   -,   -, "push_stream_shared_memory_size":push_stream_shared_memory_size,   -,   x,   -,   -,   -,   -, "push_stream_channel_deleted_message_text":push_stream_channel_deleted_message_text,   -,   x,   -,   -,   -,   -, "push_stream_channel_inactivity_time":push_stream_channel_inactivity_time,   -,   x,   -,   -,   -,   -, "push_stream_ping_message_text":push_stream_ping_message_text,   -,   x,   -,   -,   -,   -, "push_stream_timeout_with_body":push_stream_timeout_with_body,   -,   x,   -,   -,   -,   -, "push_stream_message_ttl":push_stream_message_ttl,   -,   x,   -,   -,   -,   -, "push_stream_max_subscribers_per_channel":push_stream_max_subscribers_per_channel,   -,   x,   -,   -,   -,   -, "push_stream_max_messages_stored_per_channel":push_stream_max_messages_stored_per_channel,   -,   x,   -,   -,   -,   -, "push_stream_max_channel_id_length":push_stream_max_channel_id_length,   -,   x,   -,   -,   -,   -, "push_stream_max_number_of_channels":push_stream_max_number_of_channels,   -,   x,   -,   -,   -,   -, "push_stream_max_number_of_wildcard_channels":push_stream_max_number_of_wildcard_channels,   -,   x,   -,   -,   -,   -, "push_stream_wildcard_channel_prefix":push_stream_wildcard_channel_prefix,   -,   x,   -,   -,   -,   -, "push_stream_events_channel_id":push_stream_events_channel_id,   -,   x,   -,   -,   -,   -, "push_stream_channels_path":push_stream_channels_path,   -,   -,   x,   x,   x,   x, "push_stream_store_messages":push_stream_store_messages,   -,   -,   -,   x,   -,   x, "push_stream_channel_info_on_publish":push_stream_channel_info_on_publish,   -,   -,   -,   x,   -,   -, "push_stream_authorized_channels_only":push_stream_authorized_channels_only,   -,   -,   x,   -,   -,   x, "push_stream_header_template_file":push_stream_header_template_file,   -,   -,   x,   -,   -,   x, "push_stream_header_template":push_stream_header_template,   -,   -,   x,   -,   -,   x, "push_stream_message_template":push_stream_message_template,   -,   -,   x,   -,   -,   x, "push_stream_footer_template":push_stream_footer_template,   -,   -,   x,   -,   -,   x, "push_stream_wildcard_channel_max_qtd":push_stream_wildcard_channel_max_qtd,   -,   -,   x,   -,   -,   x, "push_stream_ping_message_interval":push_stream_ping_message_interval,   -,   -,   x,   -,   -,   x, "push_stream_subscriber_connection_ttl":push_stream_subscriber_connection_ttl,   -,   -,   x,   -,   -,   x, "push_stream_longpolling_connection_ttl":push_stream_longpolling_connection_ttl,   -,   -,   x,   -,   -,   -, "push_stream_websocket_allow_publish":push_stream_websocket_allow_publish,   -,   -,   -,   -,   -,   x, "push_stream_last_received_message_time":push_stream_last_received_message_time,   -,   -,   x,   -,   -,   -, "push_stream_last_received_message_tag":push_stream_last_received_message_tag,   -,   -,   x,   -,   -,   -, "push_stream_last_event_id":push_stream_last_event_id,   -,   -,   x,   -,   -,   -, "push_stream_user_agent":push_stream_user_agent,   -,   -,   x,   -,   -,   -, "push_stream_padding_by_user_agent":push_stream_padding_by_user_agent,   -,   -,   x,   -,   -,   -, "push_stream_allowed_origins":push_stream_allowed_origins,   -,   -,   x,   -,   -,   -, "push_stream_allow_connections_to_events_channel":push_stream_allow_connections_to_events_channel,   -,   -,   x,   -,   -,   x, h1(#installation). Installation  

h1(#memory-usage). Memory usage

Just as information is listed below the minimum amount of memory used for each object:

  • message on shared = 200 bytes
  • channel on shared = 270 bytes
  • subscriber
    ** on shared = 160 bytes
    ** on system = 6550 bytes

h1(#tests). Tests

The server tests for this module are written in Ruby, and are acceptance tests, click "here":tests for more details.

h1(#discussion). Discussion

Nginx Push Stream Module "Discussion Group":discussion

h1(#contributors). Contributors

"People":contributors

[discussion]https://groups.google.com/group/nginxpushstream
[donate]https://www.paypal.com/cgi-bin/webscr?cmd=s-xclick&hosted_button_id=4LP6P9A7BC37S
[eventsource_ref]http://dev.w3.org/html5/eventsource/
[websocket_ref]http://dev.w3.org/html5/websockets/
[comet_ref]http://en.wikipedia.org/wiki/Comet
%28programming%29
[installation]#installation
[examples]#examples
[javascript_client]docs/javascript_client.textile#javascript_client
[repository]https://github.com/wandenberg/nginx-push-stream-module
[contributors]https://github.com/wandenberg/nginx-push-stream-module/contributors
[changelog]CHANGELOG.textile
[curl]docs/examples/curl.textile#curl
[forever_iframe]docs/examples/forever_iframe.textile#forever_iframe
[event_source]docs/examples/event_source.textile#event_source
[websocket]docs/examples/websocket.textile#websocket
[long_polling]docs/examples/long_polling.textile#long_polling
[jsonp]docs/examples/long_polling.textile#jsonp
[m-jpeg]docs/examples/m_jpeg.textile#m_jpeg
[tests]docs/server_tests.textile
[push_stream_channels_statistics]docs/directives/channels_statistics.textile#push_stream_channels_statistics
[push_stream_publisher]docs/directives/publishers.textile#push_stream_publisher
[push_stream_subscriber]docs/directives/subscribers.textile#push_stream_subscriber
[push_stream_shared_memory_size]docs/directives/main.textile#push_stream_shared_memory_size
[push_stream_channel_deleted_message_text]docs/directives/main.textile#push_stream_channel_deleted_message_text
[push_stream_ping_message_text]docs/directives/main.textile#push_stream_ping_message_text
[push_stream_channel_inactivity_time]docs/directives/main.textile#push_stream_channel_inactivity_time
[push_stream_message_ttl]docs/directives/main.textile#push_stream_message_ttl
[push_stream_max_subscribers_per_channel]docs/directives/main.textile#push_stream_max_subscribers_per_channel
[push_stream_max_messages_stored_per_channel]docs/directives/main.textile#push_stream_max_messages_stored_per_channel
[push_stream_max_channel_id_length]docs/directives/main.textile#push_stream_max_channel_id_length
[push_stream_max_number_of_channels]docs/directives/main.textile#push_stream_max_number_of_channels
[push_stream_max_number_of_wildcard_channels]docs/directives/main.textile#push_stream_max_number_of_wildcard_channels
[push_stream_wildcard_channel_prefix]docs/directives/main.textile#push_stream_wildcard_channel_prefix
[push_stream_events_channel_id]docs/directives/main.textile#push_stream_events_channel_id
[push_stream_channels_path]docs/directives/subscribers.textile#push_stream_channels_path
[push_stream_authorized_channels_only]docs/directives/subscribers.textile#push_stream_authorized_channels_only
[push_stream_header_template_file]docs/directives/subscribers.textile#push_stream_header_template_file
[push_stream_header_template]docs/directives/subscribers.textile#push_stream_header_template
[push_stream_message_template]docs/directives/subscribers.textile#push_stream_message_template
[push_stream_footer_template]docs/directives/subscribers.textile#push_stream_footer_template
[push_stream_wildcard_channel_max_qtd]docs/directives/subscribers.textile#push_stream_wildcard_channel_max_qtd
[push_stream_ping_message_interval]docs/directives/subscribers.textile#push_stream_ping_message_interval
[push_stream_subscriber_connection_ttl]docs/directives/subscribers.textile#push_stream_subscriber_connection_ttl
[push_stream_longpolling_connection_ttl]docs/directives/subscribers.textile#push_stream_longpolling_connection_ttl
[push_stream_timeout_with_body]docs/directives/subscribers.textile#push_stream_timeout_with_body
[push_stream_last_received_message_time]docs/directives/subscribers.textile#push_stream_last_received_message_time
[push_stream_last_received_message_tag]docs/directives/subscribers.textile#push_stream_last_received_message_tag
[push_stream_last_event_id]docs/directives/subscribers.textile#push_stream_last_event_id
[push_stream_user_agent]docs/directives/subscribers.textile#push_stream_user_agent
[push_stream_padding_by_user_agent]docs/directives/subscribers.textile#push_stream_padding_by_user_agent
[push_stream_store_messages]docs/directives/publishers.textile#push_stream_store_messages
[push_stream_channel_info_on_publish]docs/directives/publishers.textile#push_stream_channel_info_on_publish
[push_stream_allowed_origins]docs/directives/subscribers.textile#push_stream_allowed_origins
[push_stream_websocket_allow_publish]docs/directives/subscribers.textile#push_stream_websocket_allow_publish
[push_stream_allow_connections_to_events_channel]docs/directives/subscribers.textile#push_stream_allow_connections_to_events_channel
[wiki]https://github.com/wandenberg/nginx-push-stream-module/wiki/_pages
[nginx_debugging]http://wiki.nginx.org/Debugging

Main metrics

Overview
Name With Ownerwandenberg/nginx-push-stream-module
Primary LanguageC
Program languageC (Language Count: 5)
Platform
License:Other
所有者活动
Created At2010-10-17 14:26:27
Pushed At2024-08-19 19:17:35
Last Commit At2024-05-09 23:16:33
Release Count24
Last Release Name0.6.0 (Posted on )
First Release Name0.1.0 (Posted on )
用户参与
Stargazers Count2.2k
Watchers Count125
Fork Count295
Commits Count505
Has Issues Enabled
Issues Count274
Issue Open Count12
Pull Requests Count2
Pull Requests Open Count3
Pull Requests Close Count36
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private