request.js 527 B

123456789101112131415161718192021222324252627282930313233
  1. 'use strict'
  2. function attachPush (req) {
  3. var handle = req.socket._handle
  4. handle.getStream(function (stream) {
  5. stream.on('pushPromise', function (push) {
  6. req.emit('push', push)
  7. })
  8. })
  9. }
  10. exports.onNewListener = function onNewListener (type) {
  11. var req = this
  12. if (type !== 'push') {
  13. return
  14. }
  15. // Not first listener
  16. if (req.listeners('push').length !== 0) {
  17. return
  18. }
  19. if (!req.socket) {
  20. req.on('socket', function () {
  21. attachPush(req)
  22. })
  23. return
  24. }
  25. attachPush(req)
  26. }