123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- //
- // LCWebSocketManager.m
- // LiveChat
- //
- // Created by 张灿 on 2018/9/17.
- // Copyright © 2018年 caicai. All rights reserved.
- //
- #import "LCWebSocketManager.h"
- @implementation LCWebSocketManager
- - (instancetype)initWithDelegate:(id)delegate serverUrl:(NSString*)url roomId:(NSString*)roomId{
- if (self = [super init]) {
- self.delegate = delegate;
- self.roomId = roomId;
- // self.socketServer = [[UCWebSocketSever alloc]init];
- [UCWebSocketSever sharedWebSocketServer].serveUrl = url;
- [UCWebSocketSever sharedWebSocketServer].roomId = roomId;
- [[UCWebSocketSever sharedWebSocketServer]startConnentWebSocket:0 ];//连接webSocket服务
- [UCWebSocketSever sharedWebSocketServer].delegate = self;
- }
- return self;
- }
- - (void)removeDelegate{
- self.delegate = nil;
- [[UCWebSocketSever sharedWebSocketServer]removeDelegate];
- }
- - (void)stopConnect{
- [[UCWebSocketSever sharedWebSocketServer] closeConnectWebSocket];
- }
- - (void)dealloc{
- [[NSNotificationCenter defaultCenter]removeObserver:self ];
- }
- //发送消息
- - (void)sendData:(NSData*)data{
-
- [[UCWebSocketSever sharedWebSocketServer] sendData:data];
-
- }
- - (void)sendCancel{//拨打方取消
-
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"cancel" forKey:@"method"];
- [dict setObject:@{@"room_id":self.roomId} forKey:@"data"];
- NSData* data = [dict mj_JSONData];
- [self sendData:data];
- }
- - (void)sendRefuse{//接受方拒绝
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"refuse" forKey:@"method"];
- [dict setObject:@{@"room_id":self.roomId} forKey:@"data"];
- NSData* data = [dict mj_JSONData];
- [self sendData:data];
- }
- - (void)sendAgree{
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"agree" forKey:@"method"];
- [dict setObject:@{@"room_id":self.roomId} forKey:@"data"];
- NSData* data = [dict mj_JSONData];
- [self sendData:data];
- }
- - (void)sendHangup{
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"hangup" forKey:@"method"];
- [dict setObject:@{@"room_id":self.roomId} forKey:@"data"];
- NSData* data = [dict mj_JSONData];
- [self sendData:data];
- }
- // 减免
- - (void)discountWithTimerId:(NSString *)timerId{
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"reducecosts" forKey:@"method"];
- [dict setObject:@{@"time_id":timerId,@"room_id":self.roomId} forKey:@"data"];
- NSData* data = [dict mj_JSONData];
- [self sendData:data];
- }
- - (void)sendChat:(NSInteger)type content:(NSString*)content{
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"message" forKey:@"method"];
- [dict setObject:@{@"txt":content,@"room_id":self.roomId} forKey:@"data"];
- NSData* data = [dict mj_JSONData];
- [self sendData:data];
- }
- //送礼物
- - (void)sendGift:(NSString*)giftId count:(NSInteger)giftCount tyID:(NSString*)gift_type_id{
- NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- [dict setObject:@"gift" forKey:@"method"];
-
- [dict setObject:@{@"gift_id":giftId,@"gift_count":@(giftCount),@"room_id":self.roomId,@"gift_type_id":gift_type_id} forKey:@"data"];
-
- NSData* data = [dict mj_JSONData];
- [self sendData:data];
-
- }
- //收到消息
- #pragma mark - webSocketDelegate
- - (void)didRecvMessage:(UCPacketBody *)packet{
-
- NSDictionary* dict = [packet.data mj_JSONObject];
- UCSocketParmaModel* param = [UCSocketParmaModel mj_objectWithKeyValues:dict];
- if(![param.method isEqualToString:@"cancalltime"]){
- NSLog(@"123收到消息 [%@]", dict);
- }
- if ([param.code isEqualToString:@"0"]) {
- if ([param.method isEqualToString:@"request"]) {//主叫方连接成功
- if (self.delegate && [self.delegate respondsToSelector:@selector(requestSuccess)]) {
- [self.delegate requestSuccess];
- }
- }else if ([param.method isEqualToString:@"response"]){//被叫方连接成功
- NSLog(@"被叫方连接成功");
- if (self.delegate && [self.delegate respondsToSelector:@selector(responseConnent)]) {
- [self.delegate responseConnent];
- }
- }else if ([param.method isEqualToString:@"updatetip"]){//主叫方更新提示信息
- if (self.delegate && [self.delegate respondsToSelector:@selector(responseChoosing:)]) {
- [self.delegate responseChoosing:[param.data objectForKey:@"tip"]];
- }
- }else if ([param.method isEqualToString:@"startvideo"]){//接通视频通话
- if (self.delegate && [self.delegate respondsToSelector:@selector(videoStart:)]) {
- [self.delegate videoStart:param.data];
- }
- }else if ([param.method isEqualToString:@"notice"]){//文字交互
- if (self.delegate && [self.delegate respondsToSelector:@selector(reciveTxt:)]) {
- [self.delegate reciveTxt:param.data];
- }
- }else if ([param.method isEqualToString:@"hangup"]){//视频通话结束
- if (self.delegate && [self.delegate respondsToSelector:@selector(videoEnd:)]) {
- //v1.1.1 判断挂断消息是否是当前房间
- if(self.roomId.integerValue == [[param.data objectForKey:@"roomid"] integerValue])
- {
- [self.delegate videoEnd:[[param.data objectForKey:@"type"]integerValue]];
- }
- }
- }
- //add by leo 20191031 剩余通话时长
- else if([param.method isEqualToString:@"cancalltime"])
- {
- // NSLog(@"剩余时长为%@\n",param.data);
- if (self.delegate && [self.delegate respondsToSelector:@selector(canCallTime:)]) {
- [self.delegate canCallTime:[param.data objectForKey:@"tip"]];
- }
- if (self.delegate && [self.delegate respondsToSelector:@selector(otherBalance:)]) {
- [self.delegate otherBalance:[[param.data objectForKey:@"account"] integerValue]];
- }
- if (self.delegate && [self.delegate respondsToSelector:@selector(discountWithTime:)]) {
- [self.delegate discountWithTime:[[param.data objectForKey:@"already_reduce_time"] integerValue]];
- }
- }
- }else{
- if (![param.message isEqualToString:@""]) {
- [ZCHUDHelper showTitle:param.message];
- }
- }
- }
- //add by leo v1.0.8弱网警告
- -(void)weakNetWorkWaring
- {
- if (self.delegate && [self.delegate respondsToSelector:@selector(autoHangUp)]) {
- [self.delegate autoHangUp];
- }
- }
- @end
|