예제 #1
0
        public RoomCommentProvider(IXmlWsRoomInfo info, int res_from, IStreamSocket socket)
        {
            _thisRoomInfo     = info;
            _res_from         = res_from;
            _socket           = socket;
            _socket.Received += Socket_Received;

            _addr     = _thisRoomInfo.XmlSocketAddr;
            _port     = _thisRoomInfo.XmlSocketPort;
            _thread   = _thisRoomInfo.ThreadId;
            _roomName = _thisRoomInfo.Name;
        }
        public async Task SendAsync(IXmlWsRoomInfo roomInfo, string str)
        {
            //コメントを送れるのは自分の部屋だけ。
            //どうやって自分の部屋を識別する?
            var v = _roomDict.Where(kv => kv.Key.Equals(roomInfo));

            if (v.Count() == 0)
            {
                throw new InvalidOperationException("当該の部屋が存在しない");
            }

            var context = v.First().Value;
            await context.RoomCommentProvider.SendAsync(str);
        }