CSharpRTMP.Core.Protocols.Cluster.BaseClusterProtocol.OnReceive C# (CSharp) Method

OnReceive() protected method

protected OnReceive ( ClusterMessageType type ) : void
type ClusterMessageType
return void
        protected virtual void OnReceive(ClusterMessageType type)
        {
            uint streamId;
            string roomName=null;
            Variant message;
            uint appId;
            switch (type)
            {
                case ClusterMessageType.SharedObjectTrack:
                    appId = InputBuffer.Reader.Read7BitValue();
                    var soName = InputBuffer.Reader.ReadString();
                    var version = InputBuffer.Reader.Read7BitValue();
                    var isPersistent = InputBuffer.Reader.ReadBoolean();
                    message = Deserialize();
                   
                    Logger.INFO("SharedObjectTrack:{0},{1}", appId, soName);
                    GetRoom(appId).SOManager.Process(this, soName, isPersistent, message);
                    break;
                case ClusterMessageType.BroadCast:

                    appId = InputBuffer.Reader.Read7BitValue();
                    message = Deserialize();
                    Logger.INFO("ReceiveBroadcast from {1}:{0}", message, appId);
                    GetRoom(appId).Broadcast(this, message);
                    break;
                case ClusterMessageType.Call:
                    appId = InputBuffer.Reader.Read7BitValue();
                    var functionName = InputBuffer.Reader.ReadString();
                    message = Deserialize();
                    GetRoom(appId).CallFunction(functionName, this, message);
                    break;
                case ClusterMessageType.Audio:
                    FeedData(true);
                    break;
                case ClusterMessageType.Video:
                    FeedData(false);
                    break;
                case ClusterMessageType.StopPublish:
                    streamId = InputBuffer.Reader.Read7BitValue();
                    Logger.INFO("StopPublish:" + streamId);
                    if (InStreams.ContainsKey(streamId))
                    {
                        InStreams[streamId].Dispose();
                        InStreams.Remove(streamId);
                    }
                    break;
                case ClusterMessageType.StreamMessage:
                    streamId = InputBuffer.Reader.Read7BitValue();
                    var length = (int)InputBuffer.Reader.Read7BitValue();
                    var buffer = new byte[length];
                    InputBuffer.Reader.Read(buffer, 0, length);
                    //message = Deserialize();
                    if (InStreams.ContainsKey(streamId))
                    {
                        InStreams[streamId].SendStreamMessage(new BufferWithOffset(buffer));
                    }
                    break;
                case ClusterMessageType.Unknow:
                    Logger.WARN("Unknow Type!");
                    break;
                default:
                    Logger.WARN("Unknow Type :"+type);
                    break;
            }
        }