public void subscribeToChat(CPacheStream cPacheStream) { lock (locker) { //add the client to new messages cpacheStreams.Add(cPacheStream.StreamId, cPacheStream); //send all the old messages foreach (ChatLine chatLine in chatContent) { var ret = JsonConvert.SerializeObject(chatLine); cPacheStream.Broadcast(ret); } } }
protected override void ClientStream(HttpRequest request, CPacheStream cPacheStream) { myStream = cPacheStream; var id = request.Url.Split("?roomid=")[1].Replace("%22", ""); lock (GameServiceRouter.locker) { foreach (IGameRoom chatRoom in GameServiceRouter.GetAllRooms()) { if (chatRoom.instance == id) { ChatRoom = chatRoom; } } } ChatRoom.subscribeToChat(cPacheStream); }
public void addLine(ChatLine chatLine, CPacheStream cPacheStream) { if (cpacheStreams.ContainsKey(cPacheStream.StreamId)) { cpacheStreams.Remove(cPacheStream.StreamId); cpacheStreams.Add(chatLine.userName, cPacheStream); if (players.Count == 0) { players.Add(chatLine.userName, new Player() { myTurn = true, Score = 0, Username = chatLine.userName }); } else { players.Add(chatLine.userName, new Player() { myTurn = false, Score = 0, Username = chatLine.userName }); } } lock (locker) { //add it to the legder chatContent.Add(chatLine); foreach (KeyValuePair <String, CPacheStream> client in cpacheStreams) { var ret = JsonConvert.SerializeObject(chatLine); try { client.Value.Broadcast(ret); } catch (Exception) { disposedRunningList.Add(client.Value); } } } }
protected override void DisposedClientStream(CPacheStream cPacheStream) { throw new NotImplementedException(); }