Examples of RTMPOriginConnection


Examples of org.red5.server.net.rtmp.RTMPOriginConnection

      log.debug(packet.toString());
    }
    int clientId = header.getClientId();
    int sessionId = getSessionId(session);
    MRTMPOriginConnection mrtmpConn = (MRTMPOriginConnection) session.getAttachment();
    RTMPOriginConnection conn = null;
    switch (packet.getHeader().getType()) {
      case MRTMPPacket.CONNECT:
        lock.writeLock().lock();
        try {
          if (header.isDynamic()) {
            if (!dynConnMap.containsKey(clientId)) {
              conn = new RTMPOriginConnection(
                  IConnection.POLLING,
                  header.getClientId()
                  );
              conn.setMrtmpManager(mrtmpManager);
              conn.setHandler(this);
              dynConnMap.put(clientId, conn);
            } else {
              log.warn("Open an already existing RTMPT origin connection!");
            }
          } else {
            StaticConnId connId = new StaticConnId();
            connId.clientId = header.getClientId();
            connId.sessionId = sessionId;
            if (!statConnMap.containsKey(connId)) {
              conn = new RTMPOriginConnection(
                  IConnection.PERSISTENT,
                  header.getClientId(),
                  sessionId
                  );
              conn.setMrtmpManager(mrtmpManager);
              conn.setHandler(this);
              statConnMap.put(connId, conn);
            } else {
              log.warn("Open an already existing RTMP origin connection!");
            }
          }
        } finally {
          lock.writeLock().unlock();
        }
        break;
      case MRTMPPacket.CLOSE:
      case MRTMPPacket.RTMP:
        lock.readLock().lock();
        try {
          if (header.isDynamic()) {
            conn = dynConnMap.get(clientId);
          } else {
            StaticConnId connId = new StaticConnId();
            connId.clientId = header.getClientId();
            connId.sessionId = sessionId;
            conn = statConnMap.get(connId);
          }
        } finally {
          lock.readLock().unlock();
        }
        if (conn != null) {
          if (packet.getHeader().getType() == MRTMPPacket.CLOSE) {
            closeConnection(conn);
            conn = null;
          } else {
            MRTMPPacket.RTMPBody rtmpBody = (MRTMPPacket.RTMPBody) body;
            handler.messageReceived(conn, conn.getState(), rtmpBody.getRtmpPacket());
          }
        } else {
          log.warn("Handle on a non-existent origin connection!");
        }
        break;
View Full Code Here

Examples of org.red5.server.net.rtmp.RTMPOriginConnection

    }
    MRTMPPacket.Header header = packet.getHeader();
    MRTMPPacket.Body body = packet.getBody();
    int clientId = header.getClientId();
    int sessionId = getSessionId(session);
    RTMPOriginConnection conn = null;
    lock.readLock().lock();
    try {
      if (header.isDynamic()) {
        conn = dynConnMap.get(clientId);
      } else {
        StaticConnId connId = new StaticConnId();
        connId.clientId = header.getClientId();
        connId.sessionId = sessionId;
        conn = statConnMap.get(connId);
      }
    } finally {
      lock.readLock().unlock();
    }
    if (conn != null) {
      MRTMPPacket.RTMPBody rtmpBody = (MRTMPPacket.RTMPBody) body;
      final int channelId = rtmpBody.getRtmpPacket().getHeader().getChannelId();
      final IClientStream stream = conn.getStreamByChannelId(channelId);
      // XXX we'd better use new event model for notification
      if (stream != null && (stream instanceof PlaylistSubscriberStream)) {
        ((PlaylistSubscriberStream) stream).written(rtmpBody.getRtmpPacket().getMessage());
      }
    } else {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.