--- googlecode.com/svn/trunk/Meteor/Subscriber.pm 2008/02/04 19:02:49 45 +++ googlecode.com/svn/trunk/Meteor/Subscriber.pm 2008/02/04 22:30:35 49 @@ -140,16 +140,6 @@ $self->{'mode'}=$2; my $persist=$self->getConf('Persist'); - if ($self->{'mode'} eq "xhrinteractive" || $self->{'mode'} eq "iframe" || $self->{'mode'} eq "serversent" || $self->{'mode'} eq "longpoll") { - $persist=1; - $self->{'MaxMessageCount'}=1 unless(!($self->{'mode'} eq "longpoll")); - } - if ($self->{'mode'} eq "iframe") { - $self->{'HeaderTemplateNumber'}=1; - } else { - $self->{'HeaderTemplateNumber'}=2; - } - my $maxTime=$self->getConf('MaxTime'); if($maxTime>0) { @@ -185,7 +175,7 @@ if(scalar(keys %{$channels})) { $self->emitOKHeader(); - $self->setChannels($channels,$persist); + $self->setChannels($channels,$persist,$self->{'mode'},''); $self->close(1) unless($persist); return; } @@ -215,6 +205,8 @@ my $self=shift; my $channels=shift; my $persist=shift; + my $mode=shift || ''; + my $userAgent=shift || ''; foreach my $channelName (keys %{$channels}) { @@ -224,7 +216,7 @@ $self->{'channels'}->{$channelName}=$channel if($persist); - $channel->addSubscriber($self,$startIndex,$persist); + $channel->addSubscriber($self,$startIndex,$persist,$mode,$userAgent); } } @@ -248,14 +240,7 @@ my $self=shift; my $status=shift; - my $header=undef; - if(exists($self->{'HeaderTemplateNumber'})) - { - my $hn='HeaderTemplate'.$self->{'HeaderTemplateNumber'}; - - $header=$self->getConf($hn); - } - $header=$self->getConf('HeaderTemplate') unless(defined($header)); + my $header=$self->getConf('HeaderTemplate'); $header=~s/~([^~]*)~/ if(!defined($1) || $1 eq '') @@ -337,11 +322,11 @@ return unless(exists($self->{'channels'}->{$channelName})); my $channel=$self->{'channels'}->{$channelName}; - $channel->removeSubscriber($self); + $channel->removeSubscriber($self,'channelClose'); delete($self->{'channels'}->{$channelName}); - $self->close() if(scalar(keys %{$self->{'channels'}})==0); + $self->close(0,'channelsClosed') if(scalar(keys %{$self->{'channels'}})==0); } sub close { @@ -351,7 +336,7 @@ foreach my $channelName (keys %{$self->{'channels'}}) { my $channel=$self->{'channels'}->{$channelName}; - $channel->removeSubscriber($self); + $channel->removeSubscriber($self,'subscriberClose'); } delete($self->{'channels'});