tcpprocessor.js 999 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. var EventEmitter = require('events').EventEmitter;
  2. var util = require('util');
  3. var utils = require('../../util/utils');
  4. var TcpSocket = require('./tcpsocket');
  5. var ST_STARTED = 1;
  6. var ST_CLOSED = 2;
  7. // private protocol, no need exports
  8. var HEAD_SIZE = 4;
  9. /**
  10. * websocket protocol processor
  11. */
  12. var Processor = function(closeMethod) {
  13. EventEmitter.call(this);
  14. this.closeMethod = closeMethod;
  15. this.state = ST_STARTED;
  16. };
  17. util.inherits(Processor, EventEmitter);
  18. module.exports = Processor;
  19. Processor.prototype.add = function(socket, data) {
  20. if(this.state !== ST_STARTED) {
  21. return;
  22. }
  23. var tcpsocket = new TcpSocket(socket, {headSize: HEAD_SIZE,
  24. headHandler: utils.headHandler,
  25. closeMethod: this.closeMethod});
  26. this.emit('connection', tcpsocket);
  27. socket.emit('data', data);
  28. };
  29. Processor.prototype.close = function() {
  30. if(this.state !== ST_STARTED) {
  31. return;
  32. }
  33. this.state = ST_CLOSED;
  34. };