直播间重构简析

一, 思维导图分析


主框架.png

runtime 消息分发.png

子模块.png

二, 类的分析

Base

PXXRoomBaseModule

    基础组件
    1.请求房间基本信息。设置最大重复请求次数
    2.配置 PXXLiveHouseLimitManager
    public:
    1.请求房间基本信息:loadData:rootview:
    (PXXLiveHouseLimitManager):房间限制管理:密码限制,
    是否有邀请码等

Normal

PXXRoomContentModeNormal:PXXRoomContentMode

 直播间组件控制加载
 private 业务流程:
 1.设置直播间进入信息 setRoomInfo:
 2.设置直播间装载容器(键盘监听)setController:
 3.创建直播间逻辑功能 createRoomFunction:
 4.创建初始化模块组件 loadRoomModules:
 5.加载内容:moduleDidLoad     didLoad
 6. VC.videDidLoaded -> 创建Root容器:createRootContentView
     6.1 创建Root容器 -> 横屏视图 createLandscapeView
     6.2 创建Root容器 -> 竖屏视图 createPortraitView
     6.3 创建Root容器 -> 根视图 createRootLayout
     6.4 创建Root容器 -> 添加点击事件 addTapGestureRecognizer
 7. VC.videDidLoaded -> 分发消息:createDefaultInterface
 8. VC.videDidLoaded -> 请求baseInfo :loadRoomData:
 9. VC.viewWillAppear -> 分发消息: viewWillAppear
 10.VC.viewDidAppear -> 分发消息: viewDidAppear
 11.VC.viewWillDisappear  -> 分发消息: viewWillDisappear
 12.VC.viewDidDisappear    -> 分发消息: viewDidDisappear
 13.VC.willRotateToInterfaceOrientation -> 分发消息
 14.VC.didRotateFromInterfaceOrientation -> 分发消息

Modules

Extension

PXXRoomModule (PXXRoomModuleSearchResult)

 PXXRoomModule Extension
 组件工厂:
 内容简介    
 1.获取其他功能和业务组件

PXXRoomNoticeModule

 直播间通知组件:直播间状态改变通知
 private:
 1.长链解析:MESSAGE_TYPE_STEAMCUT:10 断流-> onNoticeSteamCut
          :MESSAGE_TYPE_BANROOM:11  封禁 -> onNoticeBan
          :MESSAGE_TYPE_SEALUP:20      整改 -> onNoticeSealup
          :MESSAGE_TYPE_UNSEAL:21   接触整改 -> onNoticeUnseal
          :MESSAGE_TYPE_LIGHT_REMIND:22 显示轻度提醒 -> sendLightRemind
          :MESSAGE_TYPE_UN_LIGHT_REMIND:23 解除轻度提醒 -> removeLightRemind
 2.更改 PXXRoomStateContext.statetype
 3.更改 PXXRoomStateContext.errortype
 public:
 1.首充提示:onRechargeRemindState:(NSNotification *)notification
 2.支付完成:rechargeFinish;

PXXRoomUserModule

 直播间用户信息组件:用户权限变更,信息变更,主播开播提醒
 private:
 1.长链解析:MESSAGE_TYPE_GRANT:209 给用户分配权限的通知 -> updateUserInfoWithDictionary
 2.长链解析:MESSAGE_TYPE_REVOKE:210 解除用户权限 -> updateUserInfoWithDictionary
 3.请求是否已经关注了当前主播 -> requestIsFollowed
 4.添加用户信息变化通知 -> onAccountState -> 分发:userLogin
                                      -> 分发:userLogout

PXXRoomAnchorModule

 直播间主播信息组件:
 简介:直播间主播信息更改,观看人数。主播身高,主播经验
 private
 1.长链解析:MESSAGE_TYPE_VIEWERS:207 观看人数更新
 2.长链解析:MESSAGE_TYPE_HEIGHT :208 主播身高更新
 3.长链解析:MESSAGE_TYPE_UPDATE_ANCHORLEVEL_VALUE :212 主播经验更新提示

PXXRoomSideBarModule

 直播间右边栏组件:管理直播间内活动按钮
 简介:统一管理直播间竖屏状态下活动按钮,根据产品优先级排列顺序,并实现相关按钮的点击事件和效果。
 private
 1.按钮:PXXRoomSideBar_PKButton 100                     //PK按钮
 2.按钮:PXXRoomSideBar_CompetitionButton 200            //竞技按钮
 3.按钮:PXXRoomSideBar_ManyLuckyButton   300            //多人挖宝
 4.按钮:PXXRoomSideBar_LuckyButton       400            //普通抽奖
 5.按钮:PXXRoomSideBar_RechargeTask      450            //时效任务
 6.按钮:PXXRoomSideBar_AccompanyPlayButton  500         //主播陪玩
 7.按钮:PXXRoomSideBar_RewardButton      600            //新主播打赏

 对外使用接口
 1.根据优先级创建按钮 -> createSideButtonByPriority:action:
 2.车队显示更新边栏组件 -> showCarTeamView:
 3.根据优先级设置按钮的显示状态 -> updateButtonPriority:show:
 4.根据优先级设置按钮的选择状态 -> updateButtonPriority:select:
 5.根据优先级设置按钮的文案 -> updateButtonPriority:title:
 6.根据优先级设置按钮的normalImg -> updateButtonPriority:normalImg:
 7.根据优先级设置按钮的hightImg -> updateButtonPriority:hightImg:
 8.根据优先级设置按钮的文案 -> updateButtonPriority:tagInteger:

ManyPeopleLuckyDraw

 多人挖宝组件:
 简介:竖屏触发按钮由PXXRoomSideBarModule管理
 public
 1.更新多人挖宝的信息 -> requestInfo
 2.清空多人挖宝的信息 -> clearData
 3.                -> configLuckyDrawInfo
 4.                -> addLuckyActionBlock
 5.                -> addClickLuckyActionBlock
 6.                -> addUpdateLuckyActionBlock
 7.                -> addHiddenLuckyViewActionBlock
 8.                -> addLuckySendGiftActionBlock
 9.                -> addLuckyToastActionBlock

PXXRechargeTaskModule

 用户限时任务组件:
 简介:类型区分:英雄学院 限时好礼 金色礼包 渡劫飞升,竖屏触发按钮由PXXRoomSideBarModule管理
 private:
 1.请求限时任务数据:requestRechargeTaskInfo
 2.viewDidAppear           -> requestRechargeTaskInfoIfNeeded
 3.applicationBecomeActive -> requestRechargeTaskInfoIfNeeded
 public:
 1.PXXRoomRechargeTaskManager -> updateData: superview:
 2.添加TaskView容器视图,设置TaskView的回调事件: setupControl:
 3.装载TaskView视图: setData:
 4.添加右边栏时效任务按钮: PXXRoomSideBar_RechargeTask
 5.更新右边栏时效任务按钮图片: updateImgWithType
 6.当天第一次展示充值任务面板: showTaskViewOrEntranceView

PXXAccompanyToPlayModule

 简介:
 1.陪玩竖屏触发按钮由PXXRoomSideBarModule管理
 2.陪玩视图管理:PXXRoomAccompanyToPlayManager 
 private: 
 1.长链数据解析:MESSAGE_TYPE_ACCOMPANYTOPLAY -> onAccompanyMessage
 2.请求当前直播间的陪玩信息:showAccompanyToPlayViewNeeded
 3.添加右边栏陪玩按钮: showAccompanyToPlayViewNeeded
 4.显示陪玩视图容器: showAccompanyToPlayView

PXXRoomRegisterModule

 注册引导组件:(已经删除) 

PXXRoomADModule

 广告组件:展示直播间视频广告组件
 1.监听长链数据解析:MESSAGE_TYPE_GOOGLE_DPF -> receiveGoogleAd
 2.设置ADModule -> setupADModule
 3.当播放音频时, 禁用广告:addVideoTypeChangeObserver
 4.ad横竖屏UI,横竖屏切换效果
 5.实现PXXADModuleCenterProtocol
 public:
 1.(void)videoRestart

PXXRoomCustomSkinModule

直播间皮肤组件:熊猫三周年皮肤
 1.下载直播间皮肤信息: downloadSkinImage
 2.更新直播间皮肤信息: updateSegmentView  直播间皮肤更改
                  : updateInputView    输入框皮肤更改

PXXCarStationOptimizeModule

 车站功能组件:
 1.长链解析: MESSAGE_TYPE_CARSTATION_GIFTPAG 粉丝礼包 -> receiveCarStationGiftPag
 1.长链解析: MESSAGE_TYPE_CARSTATION_NOTIFICATION -> appendChatRoomMessage
 1.长链解析: MESSAGE_TYPE_CARSTATION_BEFANS -> configGiftInfoWithMessage
 2.请求粉丝徽章信息 -> requestCarStationFansBagInfo
 3.显示车站容器: showCarStationSendView
 内容:
 1.PXXCarStationGiftSendView 车队礼物发送 -> requestToOpenGiftPag 发送礼物
 2.PXXCarStationGiftSendView -> hideCarStationSendView
 3.PXXCarStationGiftReceiveView 车队礼物接受 -> hideCarStationReceiveView

PXXRoomAnchorPKModule

 主播PK组件:
 对外功能:全屏弹出礼物视图时, 主播pk视图如果存在, 就自动上移 -> moveYProgressView:
 
 1.长链解析: MESSAGE_TYPE_ANCHOR_PK_START_OR_FINISH -> onAnchorPKCreate
 1.长链解析: MESSAGE_TYPE_ANCHOR_PK_SCORE_CHANGE -> onAnchorPKScoreChange
 1.长链解析: MESSAGE_TYPE_ANCHOR_PK_RESULT_NOTIFICATION -> onAnchorPKNotify
 2.请求主播 pk 的信息 -> requestAnchorPkInfoIfNeeded
 3.横竖屏UI展示切换 -> setAnchorPkViewFullScreenStatus:
 
 内部逻辑
 1. requestAnchorPkInfoIfNeeded -> showAnchorPkView
 2. onAnchorPKCreate:type.integerValue == 1 -> receiveShowAnchorPkView
 2. onAnchorPKCreate:type.integerValue == 2 -> receiveStartAnchorPkPunishment
 2. onAnchorPKCreate:type.integerValue == 3 -> receiveAnchorPKWillRemove
 3. onAnchorPKScoreChange -> receiveUpdateAnchorPkScore
 4. onAnchorPKNotify -> receiveAnchorPKNotify

QunarRedPacketModule

 去哪红包组件:
 对外功能: 显示去哪网红包 -> showQunarRedPacketView:

 1.videDidLoaded -> showQunarRedPacketViewIfNeeded
 2.QunarRedPacketViewMgr -> _redPacketViewClick 跳转直播间

PXXTeamFlagModule

 战队队旗组件:  
 1.长链数据解析:MESSAGE_TYPE_CARTEAMFLAG_BUY -> configGiftInfoWithMessage

PXXBackgroundModule

 后台播放管理组件:(冗余代码比较多)
 1.添加监听-> applicationWillResignActive:,applicationDidBecomeActive:
 2.监听网络-> networkStatusNotification:
 3.applicationWillResignActive -> canPlayBackground,endTaskTimer
 4.applicationDidBecomeActive -> alertPlayBackground,beginTaskTimer
 内部逻辑
 1.canPlayBackground:同意后台播放 -> NOTIFY_FlowPackag_EnterBackGround
 2.didLeaveRoom
 3.alertPlayBackground:设置后台播放,权限

PXXEnterRoomFunctionModule

 进入直播间功能组件: 
 公用方法:
 1.隐藏提示用户登录:hideRemindLoginView
 2.显示一血:showFirstBloodViewIfNeed
 内部逻辑:
 1.提示用户登录:showRemindFollowView
 2.一血:buildFirstBloodModule 
 3.显示一血:appendFirstBloodTimer -> ensureFromServerBeforeShow
 UI
 1.firstBloodView 一血视图
 2.PXXRemindLoginView 登录视图

PXXLeaveRoomSubscribeModule

 直播间订阅组件:
 公用方法
 1.退出直播间:leaveroom
 2.直播观看时长计时:startTimer
 3.显示订阅提醒:showSubscribeToastIfNeeded
 4.隐藏订阅提醒:hiddenSubscribeToastIfNeeded
 内部逻辑:
 1.startTimer 开启显示订阅提醒倒计时:10分钟
 2.LeaveRoomSubscribeView -> leaveRoomBlock,leaveRoomWithSubscribe
 3. leaveRoomWithSubscribe -> requestFollow

PXXNewAnchorRewardModule

 新主播打赏组件: 
 1.长链解析:MESSAGE_TYPE_UPDATE_NEW_ANCHOR_REWARD_INFO -> updateRoomInfoData
 内容 PXXRoomRewardViewManager

PXXLivePKModule

 礼炮PK组件: 相关内容 
 1.长链解析:MESSAGE_TYPE_PK_GAME_STATUS 
 ctype == 1 -> showPkGameBtnWithData, 
 ctype == 2 -> updatePkGameProgressWithData
 ctype == 3 -> updatePkGameProgressWithData
 ctype == 4 -> updatePkGameCardWithData
 2.applicationBecomeActive->requestAnchorPkInfoIfNeeded->showPkGameBtnWithData
 3.showPkGameBtnWithData:
 3.1 显示PK按钮,展示当前主播PK状态文案 -> showPkGameBtn:
 3.2 装载横屏PK视图容器,载入数据 -> portraitView.setData
 3.3 装载竖屏PK视图容器,载入数据 -> pkGameFullscreenView.setData
 3.4 加载竖屏,横屏PK视图中提示文案 -> updateKillString:introString
 3.5 显示礼炮PK按钮
 4. updatePkGameProgressWithData:
 4.1 更新分数展示信息:updateProgessScoreAndShowBtnState
 4.2 更新结果信息:_updateWinnerView
 容器功能:
 1.发送礼物
 2.PK结束抽奖

PXXRoomLotteryModule

 普通抽奖组件:
 公共方法:
 1.刷新粉丝徽章等级 requestFansLevelIfNeeded
 相关内容
 1.长链解析:MESSAGE_TYPE_LUCKYDRAW_START 
 1.1 LuckyDrawProgressPrepare -> chatDispatchLuckdrawStart
 1.2 LuckyDrawProgressUnstart -> chatDispatchLuckdrawStart
 1.3 PXXLuckyDrawManager -> updateLuckyDrawView
 2.长链解析:MESSAGE_TYPE_LUCKYDRAW_END
 2.1 PXXLuckyDrawManager -> addLuckdrawParticipant:nickName:luckydrawId:
 3.长链解析:MESSAGE_TYPE_UPDATE_MY_ROOM_FANS_LEVEL
 3.1 updateFansLevelAndActiveForLuckydraw
 4.请求抽奖 -> queryPlatformLuckyDraw
 容器内容: PXXLuckyDrawManager

PXXUserInformationModule

 用户信息组件:简介
 公共方法:
 1.显示用户信息:showUserInformationViewWith:
 2.隐藏用户信息:hiddenUserInformationView
 3.获取当前最近的访问者:getCurrentRecentlyVisitor
 容器内容:
 1.访问者管理:RecentlyVisitor
 2.PXXUserInformationModalView

PXXRoomAudioPlayModule

 控制蒙层和声音播放组件: 网宿流量使用
 公共方法:
 1.显示网络提示弹框: showNetworkAlertView
 2.隐藏网络提示弹框: hideNetWorkAlertView
 容器内容:
 1.NonWifiLayerControlImplNew

PXXRoomRecommendModule

 直播间推荐模块:
 公共方法:
 1.请求推荐数据:loadRecommendData
 2.隐藏推荐view:hideRecommendView 
 3.推荐view是否显示:isShowRecommendView
 内容方法:
 1.addContextKVO -> updateRecommendViewState
 2.长链解析:MESSAGE_TYPE_TURNCHANNEL -> receiveTurnChannel
 3.请求推荐信息:requestRecommendData
 容器:
 1.PXXLiveRecommendedView

PXXRoomFansBadgeModule

 粉丝徽章组件:
 公共方法:
 1.显示,隐藏粉丝徽章视图
 2.更改用户佩戴的粉丝徽章
 3.更新粉丝徽章
 4.更新粉丝徽章等级
 内容:
 1.长链解析:MESSAGE_TYPE_UPDATE_FANSBADGE:徽章等级升级
 容器:
 1.PXXNormalPortraitFansBadgeModel

PXXRoomHeroSkillsModule

 英雄体系组件 
 英雄体系技能竖屏UI,英雄技能使用方法
 英雄技能经验竖屏UI
 英雄技能使用后数据解析:英雄礼包,礼物变化

PXXVoteModule

 投票组件
 内容:
 1.长链解析:MESSAGE_TYPE_VOTE_START  -> 投票开始
 2.长链解析:MESSAGE_TYPE_VOTE_END    -> 结束投票
 3.长链解析:MESSAGE_TYPE_VOTE_UPDATE -> 投票更新
 容器:
 1.PXXVoteManager

PXXRoomPushControllerModule

 直播间跳转管理组件
 实现直播间跳转的其他直播间的功能统一管理

PXXShortVideoContributeMoudule

 高能时刻录制组件 
 简介:
 1.直播间录屏组件
 2.UI只在横屏
 3.可录制一定时长的直播视频
 公开方法:
 1.横竖屏显示:showShortVideoContributeViewWith

PXXRoomCarteamModule

 车队组件
 1.长链解析:MESSAGE_TYPE_UPDATE_LIVEROOM_CARTEAM_NUM_NEW -> receiveCarteamNumChange
 2.长链解析:MESSAGE_TYPE_UPDATE_LIVEROOM_ACTION_NOFITY -> receiveUpdateLiveroomMyAttendingCarteam

PXXRoomTaskModule

 直播间竹子领取定时任务组件
 简介:
 1.用户登入进入直播间开启竹子领取任务
 2.竹子领取相关UI只支持竖屏
 3.用户退出直播间,当前阶段到计时停滞
 4.完成一个阶段的竹子领取时,领取按钮有相关提示

PXXRoomCurrentGiftModule

 直播间礼物组件
 公共方法
 1.更新背包数据
 2.更新礼物数据
 3.更新戳主播数据
 4.发送背包礼物
 5.发送礼物(竹子和礼物)
 6.发送竹子
 7.发送礼物 

PXXGuessCompetitonModule

 直播间竞猜组件
 公共方法:
 1.显示竖屏的竞猜View
 2.显示横屏的竞猜View

PXXRoomLuckyDrawModule

 直播间宝箱掉落组件
 公共方法:
 1.创建礼物掉落宝箱
 2.创建红包掉落宝箱
 3.礼物宝箱数据解析

MainModule

PXXRoomVideoModule

 视频播放组件 
 简介:直播间播放控制组件,提供直播播放的控制方法

PXXRoomMessageModule

 长链消息分发组件
 简介:长链消息管理组件。

PXXRoomBannerModule

 横幅组件
 公共方法:
 1.根据指定平台礼物信息展示横幅:showBannerWithPlatGiftMessage
 2.获取礼物动画管理者:updateGiftAnimationViewLevel
 
 简介:解析长链,根据不同的长链类型解析不同的横幅礼物

PXXRoomEnterSpecialModule

 进场特效组件
 public:
 1.添加当前用户进场特效 appendCurrentUserEnterSpecial
 2.配置进场特效是否被屏蔽 configEnterSpecialIsShield

PXXRoomBarrageSettingModule

 弹幕管理组件

PXXRoomWorldBarrageModule

 世界弹幕组件
 public
 1.添加世界弹幕:appendWorldBarrageWithModel
 2.世界弹幕是否被屏蔽:worldInfoIsShield

PXXRoomChatModule

 普通弹幕组件
 public:
 1.添加礼物聊天信息:appendGiftChatMessage
 2.添加聊天信息:appendChatMessage(在聊天室与全屏弹幕中添加聊天信息)
 3.添加聊天信息:appendRoomChatMessage(在聊天室中添加聊天信息)
 4.发送聊天信息:sendChatMessage

PXXRoomPayBarrageModule

 高能弹幕组件
 public:
 1.高能弹幕竖屏视图:getPayBarrageView
 2.高能弹幕横屏视图:getFullPayBarrageView
 3.接收聊天消息:recieveChatMessage
 4.配置弹幕是否被屏蔽:configBarrageIsShield

PXXRoomEmojiModule

 Emoji表情组件
 public:
 1.获取表情管理:getChatEmojiManager
 2.获取全部png表情信息:getAllPngEmojiDictionary
 3.获取全部gif表情信息:getAllGifEmojiDictionary
 4.获取表情数量:getEmojiCount

PXXRoomBarrageModule

 全屏弹幕层组件
 public:
 1.获取全屏弹幕视图:getFullBarrageView
 2.接收聊天消息:recieveChatMessage:
 3.添加用户自己聊天信息:appendCurrentUserChatMessage:
 4.添加用户自己聊天信息:appendCurrentUserNormalChatMessage:
 5.添加礼物聊天信息:appendGiftChatMessage
 6.配置弹幕是否被屏蔽:configBarrageIsShield:

PXXScreenAreaAnimateModule

 视频区域动画组件

PXXRoomAnimationModule

 直播间视图区域管理组件 
 public:
 1.从英雄视图跳转其他房间:jumpToOtherRoom:heroView:
 2.跳转其他房间: jumpToOtherRoom:origin:
 3.配置高能弹幕视图  configPayBarrageView
 4.配置世界弹幕视图  configWorldBarrageView:
 5.配置进场特效视图  configEnterSpecialView:

UIModule

PXXRoomLineSettingContributeMoudule

 直播线路管理组件
 public:
 1.显示直播间线路设置showRoomLineSettingContributeModule
 2.隐藏直播间线路设置 showRoomLineSettingContributeModule                                                                                                                                                                                                                        
 3:设置直播间setVideoLineSwitch

PXXRoomInteractionMoudule

 直播间交互管理组件
 public:
 1.隐藏/显示轻度提醒 :showLightRemind
 2.隐藏/显示轻度提醒视图:removeLightRemin
 3.移除轻度提醒:removeLightRemind
 4.是否睡眠退出状态:getbDormancyDestory
 5.展示全屏提示:showFullScreenToast:

PXXRoomExtendedMoudule

 直播间扩展组件
 public:
 直播间扩展view管理
 1.addExtAreaViewBlock:forKey:
 2.addExtAreaItemClassString:forKey:
 3.updateTabFromExtData:
 4.updateExtendedItem:isShowShortVideoTab:
 5.arrayTabData
 6.findExtendedViewFormTag:
 7.findSegmentIndexFormTag:
 8.findExtendedItemFormType:

 9.scrollToExtendedViewSegmentIndex:animated:
 10.scrollToExtendedViewFromTag:animated:
 11.updateSegmentCustomSkinImg
 12.setScrollEnable

RoomCore

PXXRoomContentMode

 直播组件管理基类

PXXKeyboardListener

 键盘监听组件

ModuleCenter

 组件管理中心
 1.功能组件化管理
 2.组件方法消息调用
 public:
 1.setRoomFunction:
 2.setRoomContext:
 3.loadModulesfromClass:
 4.loadModulesFromPlistFile:
 5.loadModule:
 6.unloadModule:

PXXRoomFunction

 功能组件
 public:
 1.允许屏幕旋转:enableAutorotate:
 2.转换屏幕方向:transformScreenOrientation:
 3.转换屏幕方向:transformScreenOrientation:complete:
 4.退出房间:leaveRoom
 5.登录判断:popupLoginIfLogout
 6.直播间弹:toast:showToast:
 7.通用提示充值:pushRechargeControllerAndSource:
 8.通用进入猫店,目前世界弹幕使用:pushCatShop
 9.判断的是主播在自己房间发言:isHostEnterRoomSendMsg
 10.buyWangsuFlowPackage
 11.flowPackageSetting
 12.退出全屏:leaveFullscreenMode

PXXRoomModule

 组件基类:用于功能组件继承;

PXXRoomStateContext

 房间基础信息组件
 1.保存直播间部分状态和内容信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349