iOS音视频(直播 音频 视频)iOS开发交流平台iOS App直播技术

【如何快速的开发一个完整的iOS直播app】(创建房间)

2017-01-07  本文已影响1969人  袁峥

直播(创建房间)

创建房间客户端代码

    AppDelegate.m
    [[SocketIOClient clientSocket] connectWithSuccess:^{
        NSLog(@"建议连接成功");
        // 创建房间
        [[SocketIOClient clientSocket] emit:@"createRoom" with:@[item.mj_keyValues]];
    }];

    XMGBroadcasterViewController.m
    - (IBAction)createRoom:(id)sender {
    
    // 获取房间名称
    if (_textField.text.length == 0) {
        [SVProgressHUD showImage:nil status:@"请输出房间名称"];
        [SVProgressHUD setDefaultStyle:SVProgressHUDStyleLight];
        
        return;
    }
    
    // 创建房间
    NSString *roomName = _textField.text;
    XMGRoomItem *item = [XMGRoomItem itemWithName:roomName];
    
    
    // 创建房间
    [[SocketIOClient clientSocket] emit:@"createRoom" with:@[item.mj_keyValues]];
    
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blur"]];
    imageView.frame = self.view.bounds;
    [_preView addSubview:imageView];
    
    // 监听创建房间是否成功
    [[SocketIOClient clientSocket] on:@"createRoomResult" callback:^(NSArray * _Nonnull data, SocketAckEmitter * _Nonnull ack) {
       
        BOOL success = [data[0] boolValue];
        
        if (success) {
            // 进入主播界面,移除高斯模糊
            [_blurView removeFromSuperview];
        } else {
            // 清空文本框
            _textField.text = @"";
            
            // 提示重新输入
            [SVProgressHUD showImage:nil status:@"房间同名,请重新输入房间名称"];
        }
        
        
    }];
    
    
}

创建房间服务端代码

 // 监听创建房间
    clientSocket.on('createRoom',function(data){

        // 判断房间名是否一样
        var roomNameArr = Object.keys(rooms).map(function(roomKey){
            return rooms[roomKey];
        })

        // 获取结果
        var createRoomResult = underscore.contains(roomNameArr,data.roomName);

        // 发送结果给客户端
        serverSocket.emit('createRoomResult',!createRoomResult);

        if(createRoomResult == false){

            console.log('创建新的房间');

            // 之前没有包含房间,可以创建新的房间
            clientSocket.roomKey = rooms[data.roomKey];

            // 保存房间
            rooms[data.roomKey] = data.roomName;

            // 分组
            
 // 失去连接
    // 失去连接
    clientSocket.on('disconnect',function(){

        // 清空当前房间
        if(clientSocket.roomKey) {
            
            delete rooms[roomKey];

            clientSocket.leave(roomKey);
        }

    });
上一篇 下一篇

猜你喜欢

热点阅读