テキストチャットの使い方ガイド(iOS)

概要

OpenTokのシグナリングAPIを使用すると、クライアントはOpenTokセッションに接続している他のクライアントにテキストメッセージを送信できます。特定のクライアントにシグナルメッセージを送信することも、セッションに接続しているすべてのクライアントにメッセージを送信することも可能です。

プロジェクトの設定

このチュートリアルを進めるには:

  1. OpenTokをクローンする iOSのサンプルアプリ GitHub上のリポジトリ:

    git clone https://github.com/opentok/opentok-ios-sdk-samples.git
    
  2. ターミナルで、 cd プロジェクトの「Signaling」サブディレクトリに移動し、次に以下を実行します。 pod install.

  3. Signaling ディレクトリ内にある新しい Signaling.xcworkspace ファイルをダブルクリックして、Xcode でプロジェクトを開きます。

  4. Config.h ファイルを開き、 SAMPLE_SERVER_BASE_URL を実装するサーバーのベースURLへの文字列 learning-opentok-php プロジェクト。このサーバーは、iOS サンプルアプリに OpenTok のセッション ID とトークンを提供します。詳細については、以下を参照してください。 サーバーの設定.

OpenTokセッションに接続されている2つのクライアント間でテキストチャットメッセージを送信するには、XcodeシミュレータとiOS端末の両方でアプリを実行します。

コードを詳しく見ていく

このアーカイブのサンプルは、 Basic-Video-Chat サンプル, これにより、以下の機能が追加されます:

  • テキストチャットの入力欄(「ここをタップしてチャットメッセージを送信してください」と表示されている部分)をタップし、チャットメッセージを入力して、「Return」ボタンをタップしてください。

    テキストチャットメッセージは、OpenTokセッションに接続している他のクライアントに送信されます。また、他のクライアントからiOSクライアントへチャットメッセージを送信することも可能です。

ユーザーがテキストチャットの入力欄にテキストを入力すると、 [self sendChatMessage:] メソッドが呼び出される:

- (void) sendChatMessage
{
    OTError* error = nil;
    [_session signalWithType:@"chat"
                      string:_chatInputTextField.text
                  connection:nil error:&error];
    if (error) {
        NSLog(@"Signal error: %@", error);
    } else {
        NSLog(@"Signal sent: %@", _chatInputTextField.text);
    }
    _chatTextInputView.text = @"";
}

このメソッドは、 [OTSession signalWithType:string:connection:] メソッド。このメソッドは、OpenTok セッションに接続しているクライアントにメッセージを送信します。各シグナルは、 type メッセージの種類を示す文字列(この場合は「chat」)と、メッセージの内容を含む文字列。

セッションに接続している別のクライアントがメッセージを送信すると、 [OTSessionDelegate session:receivedSignalType:fromConnection:withString:] メソッドが呼び出される:

- (void)session:(OTSession*)session receivedSignalType:(NSString*)type fromConnection:(OTConnection*)connection withString:(NSString*)string {
    NSLog(@"Received signal %@", string);
    Boolean fromSelf = NO;
    if ([connection.connectionId isEqualToString:session.connection.connectionId]) {
        fromSelf = YES;
    }
    [self logSignalString:string fromSelf:fromSelf];
}

このメソッドは、シグナルがローカルの iOS クライアントから送信されたものか、それともそのセッションに接続している別のクライアントから送信されたものかをチェックします:

Boolean fromSelf = NO;
if ([connection.connectionId isEqualToString:session.connection.connectionId]) {
    fromSelf = YES;
}

について session この引数は、クライアントの OTSession オブジェクトを表します。OTSession オブジェクトには、 connection ~を備えた物件 connectionId プロパティ。その connection この引数は、メッセージを送信したクライアントの接続を表します。これらが一致する場合、そのシグナルはローカルの iOS アプリから送信されたものです。

このメソッドは [self logSignalString:] 受信したチャットメッセージのメッセージ文字列をテキストビューに表示するメソッド。

このアプリは、OpenTokのシグナリングAPIを使用してテキストチャット機能を実装しています。ただし、このシグナリングAPIを使用すれば、セッションに接続している他のクライアントに対して(個別に、またはまとめて)メッセージを送信することも可能です。

おめでとうございます!iOS版テキストチャットチュートリアルを完了しました。
ここで作成したコードをさらに試したり調整したりすることもできますし、あるいは 次のステップ 以下を参照してください。シグナリングに関する詳細については、 OpenTok シグナリング開発者ガイド.

次のステップ

ここでの作業が終わったら、以下の役立つリソースを活用して、OpenTokアプリケーションの構築と機能強化を続けてください: