Netless

Netless

  • 通用文档
  • 常见问题
  • JavaScript
  • Android
  • iOS
  • Server
  • GitHub
  • 🇬🇧 English

›快速开始

产品概述

  • 使用须知
  • 开源项目
  • 版本历史

快速开始

  • 概述
  • 客户端集成
  • 初始化 SDK
  • 创建房间/获取房间信息
  • 加入房间
  • 生命周期以及事件回调

常用功能

  • 文档转换与播放
  • 状态管理
  • 教具使用
  • 视角操作
  • 白板操作
  • 自定义事件
  • 页面(场景)管理
  • 大课只读
  • 回放
  • RTC 混音

升级指南

  • 2.9.0迁移指南

创建房间/获取房间信息

本文相关代码,可以在 Demo 项目的 WhiteUtils 类中查看。

安全须知

创建房间/获取房间,需要使用 sdkToken,与 SDK 后端服务器,进行交互。 该 Token,是 SDK 后端服务器,与开发者后端业务服务器通讯的凭证。掌握了这个 Token,SDK 后端服务器就会认为,这是开发者进行的操作。

Example 中,为了演示方便,将创建房间/获取房间 roomToken 操作写在了客户端中,实际业务中,为了防止有人反编译客户端代码,获取 SDKToken,不应该在任何客户端暴露该 Token。 该 Token,应该在开发者的业务服务器代码,或者配置项中。

创建新房间,并直接获取 RoomToken

@interface WhiteUtils : NSObject
+ (NSString *)sdkToken;
@end
@implementation WhiteUtils

+ (void)createRoomWithResult:(void (^) (BOOL success, id response, NSError *error))result;
{
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:[APIHost stringByAppendingPathComponent:@"room?token=%@"], self.sdkToken]]];
    NSMutableURLRequest *modifyRequest = [request mutableCopy];
    [modifyRequest setHTTPMethod:@"POST"];
    [modifyRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [modifyRequest addValue:@"application/json" forHTTPHeaderField:@"Accept"];
    //@"mode": @"historied" 为可回放房间,默认为持久化房间。
    NSDictionary *params = @{@"name": @"test", @"limit": @110, @"mode": @"historied"};
    NSData *postData = [NSJSONSerialization dataWithJSONObject:params options:0 error:nil];
    [modifyRequest setHTTPBody:postData];
    
    NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:modifyRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        dispatch_async(dispatch_get_main_queue(), ^{
            if (error && result) {
                result(NO, nil, error);
            } else if (result) {
                NSDictionary *responseObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
                result(YES, responseObject, nil);
            }
        });
    }];
    [task resume];
}

@end

已知房间 UUID,获取房间 RoomToken

@interface WhiteUtils : NSObject
+ (NSString *)sdkToken;
@end
@implementation WhiteUtils

+ (void)getRoomTokenWithUuid:(NSString *)uuid Result:(void (^) (BOOL success, id response, NSError *error))result
{
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:[APIHost stringByAppendingPathComponent:@"/room/join?uuid=%@&token=%@"], uuid, self.sdkToken]]];
    NSMutableURLRequest *modifyRequest = [request mutableCopy];
    [modifyRequest setHTTPMethod:@"POST"];
    [modifyRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    
    NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:modifyRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        dispatch_async(dispatch_get_main_queue(), ^{
            if (error && result) {
                result(NO, nil, error);
            } else if (result) {
                NSDictionary *responseObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
                if ([responseObject[@"code"] integerValue]  == 200) {
                    result(YES, responseObject, nil);
                } else {
                    result(NO, responseObject, nil);
                }
            }
        });
    }];
    [task resume];
}

@end
Last updated on 5/27/2019 by 伍双
← 初始化 SDK加入房间 →
  • 安全须知
  • 创建新房间,并直接获取 RoomToken
  • 已知房间 UUID,获取房间 RoomToken
Netless
接入即互动
产品
管理控制台官网网站Demo 体验Github
公司
加入我们服务条款隐私协议
联系方式
support@netless.link社区
Copyright © 2020 Netless