Skip to content

Commit

Permalink
Abstracted code responsible for killing polling connection after X by…
Browse files Browse the repository at this point in the history
…tes were send.
  • Loading branch information
majek committed Aug 25, 2011
1 parent 7177955 commit ba46c4c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 15 deletions.
15 changes: 2 additions & 13 deletions src/trans-xhr.coffee
Expand Up @@ -39,21 +39,10 @@ class XhrPollingReceiver extends transport.ResponseReceiver

class XhrStreamingReceiver extends transport.ResponseReceiver
protocol: "xhr"

constructor: ->
@send_bytes = 0
super
max_response_size: 128*1024

doSendFrame: (payload) ->
@send_bytes += payload.length + 1
if @send_bytes > 128*1024
if @session
@session.unregister()
r = super(payload + '\n')
if @send_bytes > 128*1024
@response.end()
return r

return super(payload + '\n')


exports.app =
Expand Down
13 changes: 11 additions & 2 deletions src/transport.coffee
Expand Up @@ -189,18 +189,27 @@ class ConnectionReceiver extends GenericReceiver

# Write stuff to response, using chunked encoding if possible.
class ResponseReceiver extends GenericReceiver
max_response_size: undefined

constructor: (@response) ->
@curr_response_size = 0
try
@response.connection.setKeepAlive(true, 5000)
catch x
super (@response)

doSendFrame: (payload) ->
@curr_response_size += payload.length
r = false
try
@response.write(payload)
return true
r = true
catch x
return false
if @max_response_size and @curr_response_size >= @max_response_size
if @session
@session.unregister()
@response.end()
return r

didClose: ->
super
Expand Down

0 comments on commit ba46c4c

Please sign in to comment.