Photon Unity Networking  v1.81
English | 日本語 | 한국
Public Member Functions | Public Attributes | Properties | List of all members
ExitGames.Client.Photon.Chat.ChatClient Class Reference

연결, 채널과 메시지 처리를 위한 Photon Chat API 의 중심 클래스. More...

Inherits IPhotonPeerListener.

Public Member Functions

bool CanChatInChannel (string channelName)
 
 ChatClient (IChatClientListener listener, ConnectionProtocol protocol=ConnectionProtocol.Udp)
 
bool Connect (string appId, string appVersion, AuthenticationValues authValues)
 이 클라이언트를 Photon Chat 클라우드 서비스로 연결하는데 사용자(그리고 UserId 설정)의 인증도 하게 됩니다. More...
 
void Service ()
 클라이언트와 서버의 연결상태를 유지하고 수신되는 메시지 처리를 위해 규칙적으로 호출해주어야 합니다. More...
 
void Disconnect ()
 
void StopThread ()
 
bool Subscribe (string[] channels)
 이름으로 나열된 채널 목록을 구독하는 오퍼레이션을 전송합니다. More...
 
bool Subscribe (string[] channels, int messagesFromHistory)
 채널에 클라이언트 구독을 위해 오퍼레이션 전송, 선택적으로 캐시로 부터 메시지의 갯수를 가져옴. More...
 
bool Unsubscribe (string[] channels)
 채널 목록을 구독해지 하여 채널 목독의 메시지 수신이 중지됩니다. More...
 
bool PublishMessage (string channelName, object message)
 이 클라이언트가 구독중인 공개 채널로 메시지를 전송합니다. More...
 
bool SendPrivateMessage (string target, object message)
 사용자 한명에게 비밀 메시지를 전송합니다. 수신측 클라이언트에서는 OnPrivateMessage 를 호출합니다. More...
 
bool SendPrivateMessage (string target, object message, bool encrypt)
 사용자 한명에게 비밀 메시지를 전송합니다. 수신측 클라이언트에서는 OnPrivateMessage 를 호출합니다. More...
 
bool SetOnlineStatus (int status)
 상태-메시지 변경없이 사용자의 상태를 설정합니다. More...
 
bool SetOnlineStatus (int status, object message)
 상태-메시지 변경없이 사용자의 상태를 설정합니다. More...
 
bool AddFriends (string[] friends)
 친구들의 상태 변경을 전송해주는 Chat 서버의 리스트에 친구를 추가합니다. More...
 
bool RemoveFriends (string[] friends)
 채팅 서버의 목록에서 제공된 항목을 제거하고 이들의 상태 업데이트를 중지합니다. More...
 
string GetPrivateChannelNameByUser (string userName)
 이 클라이언트와 다른 사용자간 채팅에 대한 (로컬에서 사용된) 채널명을 얻습니다. More...
 
bool TryGetChannel (string channelName, bool isPrivate, out ChatChannel channel)
 Simplified access to either private or public channels by name. More...
 
bool TryGetChannel (string channelName, out ChatChannel channel)
 이름으로 모든 채널에 간단히 접근합니다. 공개 채널을 우선 검토한 후 비밀 채널을 검토합니다. More...
 
void SendAcksOnly ()
 

Public Attributes

int MessageLimit
 0 보다 크면 로컬에 캐시되는 메시지의 갯수가 제한됩니다. More...
 
readonly Dictionary< string,
ChatChannel
PublicChannels
 
readonly Dictionary< string,
ChatChannel
PrivateChannels
 
ChatPeer chatPeer = null
 

Properties

string NameServerAddress [get]
 가장 최근에 연결한 네임 서버 주소. More...
 
string FrontendAddress [get]
 네임 서버로부터 할당된 실제 채팅 서버 주소. 공개이며 읽기전용입니다. 공개이며 읽기전용입니다. More...
 
string ChatRegion [get, set]
 연결전에만 설정할 수 있습니다! 기본값은 "EU" 입니다. More...
 
ChatState State [get]
 현재ChatClient 의 상태. CanChat 도 사용하세요. More...
 
ChatDisconnectCause DisconnectedCause [get]
 
bool CanChat [get]
 
string AppVersion [get]
 클라이언트의 버전입니다. 새로운 버전은 이전 클라이언트 버전들에서 플레이어들을 분리하기 위해서 새로운 "virtual app" 도 생성합니다. More...
 
string AppId [get]
 Photon 클라우드로부터 할당된 AppID 입니다. 자체 호스트를 하고 있으면, 이것은 "일반적인" Photon 서버 어플리케이션 이름입니다. (대부분이: "LoadBalancing"). More...
 
AuthenticationValues AuthValues [get, set]
 연결전에만 설정할 수 있습니다! More...
 
string UserId [get]
 사용자/개인의 유일한 ID로 AuthValues.UserId 에 저장됩니다. 연결전에 설정 해주세요. More...
 
DebugLevel DebugOut [get, set]
 라이브러리에서 발생하는 디버그 출력에 대한 레벨(그리고 양)을 설정합니다. More...
 

Detailed Description

연결, 채널과 메시지 처리를 위한 Photon Chat API 의 중심 클래스.

이 클래스는 콜백을 받기 위해서는 반드시 a IChatClientListener 인스턴스로 인스턴스화되어야 합니다. 주기적으로 서비스를 호출하여 게임루프에 통합시켜주세요. Photon Chat 어플리케이션과 같이 AppId 를 가진 Connect 를 호출합니다 노트: Connect 는 이 클라이언트와 서버간의 여러개의 메시지를 다룹니다. 짧은 작업흐름은 채팅 서버로 연결해줍니다.

ChatClient 는 채팅(Connect 에서 설정)에서 사용자와 유사합니다. 각 사용자는 수신되는 비밀 메시지 채널을 자동적으로 구독하고 다른 사용자에게 비밀로 메시지를 보낼 수 있습니다. 공개용 채널에 메시지를 게시하기 전에 게시하려는 채널을 반드시 구독해야 합니다.

PublicChannels 은 구독중인 채널들의 목록이며, 메시지와 전송자들이 들어 있습니다. PrivateChannels 은 송수신된 모든 비밀 메시지들을 담고 있습니다.

Constructor & Destructor Documentation

ExitGames.Client.Photon.Chat.ChatClient.ChatClient ( IChatClientListener  listener,
ConnectionProtocol  protocol = ConnectionProtocol.Udp 
)

Member Function Documentation

bool ExitGames.Client.Photon.Chat.ChatClient.AddFriends ( string[]  friends)

친구들의 상태 변경을 전송해주는 Chat 서버의 리스트에 친구를 추가합니다.

AddFriends 와 RemoveFriends 를 이용하여 Photon Chat 서버에서 클라이언트들이 친구 목록을 처리할 수 있습니다. 친구 목록에 있는 사용자가 있으면 이 사용자의 현재 온라인 상태에 접근할 수 있습니다. (그리고 클라이언트가 친구목록에 설정한 모든 정보).

각 사용자는 정수와 임의의(직렬화할수있는)객체로 구성되어 있는 온라인 상태를 설정할 수 있습니다. 객체는 null , 해시테이블, object[] 또는 Photon 이 직렬화 할 수 있는 상태는 자동적으로 친구들에게 게시됩니다 (사용자 ID 를 AddFriends 로 설정한 모든 사용자).

Photon 은 채팅 클라이언트의 연결이 해제되면 친구 목록에서 없애기 때문에 매번 설정해야할 필요가 있습니다. 커뮤니티 API 가 이미 온라인 상태 접근을 주었다면 AddFriends 에서 온라인 친구들을 설정하고 필터링할 수 있습니다.

실체의 친구 관계는 영구적이지 않으며 Photon 외부에 저장되어야 합니다.

Parameters
friends친구 userId 들의 배열.
Returns
오퍼레이션을 전송할 수 있는 경우.
bool ExitGames.Client.Photon.Chat.ChatClient.CanChatInChannel ( string  channelName)
bool ExitGames.Client.Photon.Chat.ChatClient.Connect ( string  appId,
string  appVersion,
AuthenticationValues  authValues 
)

이 클라이언트를 Photon Chat 클라우드 서비스로 연결하는데 사용자(그리고 UserId 설정)의 인증도 하게 됩니다.

Parameters
appId관리화면에서 Photon Chat AppId 를 얻으세요.
appVersion문자열로 구성한 버전. 사용자를 분리하고 호환이 되지 않을 수 도 있는 클라이언트를 분산하기 위해 사용.
authValues인증 값. 이전에 UserId 를 설정했다면 null 로 그대로 놔 둘수도 있습니다. authValues 를 설정했다면, 이전에 설정한 모든 UserId 를 오버라이드할 것 입니다.
Returns
void ExitGames.Client.Photon.Chat.ChatClient.Disconnect ( )
string ExitGames.Client.Photon.Chat.ChatClient.GetPrivateChannelNameByUser ( string  userName)

이 클라이언트와 다른 사용자간 채팅에 대한 (로컬에서 사용된) 채널명을 얻습니다.

Parameters
userName원격 사용자명 또는 UserId.
Returns
비공개 채널의 (로컬에서 사용된) 채널명.
bool ExitGames.Client.Photon.Chat.ChatClient.PublishMessage ( string  channelName,
object  message 
)

이 클라이언트가 구독중인 공개 채널로 메시지를 전송합니다.

채널에 게시하기 전에 먼저 구독을 해야 합니다. 이 채널에 있는 모든 사람들은 이 메시지를 수신할 것 입니다.

Parameters
channelName게시할 채널 이름.
message메시지 (문자열 또는 직렬화할 수 있는 데이터).
Returns
클라이언트가 메시지 전송 준비가 되어 있지 않은 경우 False.
bool ExitGames.Client.Photon.Chat.ChatClient.RemoveFriends ( string[]  friends)

채팅 서버의 목록에서 제공된 항목을 제거하고 이들의 상태 업데이트를 중지합니다.

Photon 은 채팅 클라이언트가 연결해제 될때 친구 목록을 정리합니다. 개별 항목 제거를 원하지 않는 한 RemoveFriends 를 수행할 필요는 없습니다.

AddFriends 와 RemoveFriends 는 클라이언트가 Photon 채팅 서버에 있는 친구 목록을 다룰 수 있도록 합니다. 친구들이 목록이 있는 사용자들은 친구들의 온라인 상태에 접근할 수 있습니다(그리고 클라이언트가 설정한 모든 정보도).

각 사용자는 정수와 임의의(직렬화할수있는) 객체로 구성된 온라인 상태를 설정할 수 있습니다. 객체는 null , Hashtable, object[] 및 Photon 이 직렬화 할 수 있는 어떤것도 될 수 있습니다.

상태는 자동적으로 친구들에게 게시됩니다(내 사용자ID 를 AddFriends 로 설정한 모두).

Photon 은 채팅 클라이언트가 연결해제될 때 친구 목록을 정리하므로 매번 설정해주어야 합니다. 커뮤니티 API 가 이미 온라인 상태에 접근권한을 주었다면 AddFriends 에서 친구들을 필터링하고 온라인 친구로 설정할 수 있습니다.

실제 친구 관계는 저장되지 않으므로 Photon 의 외부에서 저장되어야 합니다.

AddFriends 와 RemoveFriends 는 클라이언트가 Photon 채팅 서버에 있는 친구 목록을 다룰 수 있도록 합니다. 친구들이 목록이 있는 사용자들은 친구들의 온라인 상태에 접근할 수 있습니다(그리고 클라이언트가 설정한 모든 정보도).

각 사용자는 정수와 임의의(직렬화할수있는) 객체로 구성된 온라인 상태를 설정할 수 있습니다. 객체는 null , Hashtable, object[] 및 Photon 이 직렬화 할 수 있는 어떤것도 될 수 있습니다.

상태는 자동으로 친구들에게 게시됩니다 (AddFriends 로 사용자 ID를 설정한 모두).

실제 친구 관계는 저장되지 않으므로 Photon 의 외부에서 저장되어야 합니다.

Parameters
friendsArray of friend userIds.
Returns
If the operation could be sent.
void ExitGames.Client.Photon.Chat.ChatClient.SendAcksOnly ( )
bool ExitGames.Client.Photon.Chat.ChatClient.SendPrivateMessage ( string  target,
object  message 
)

사용자 한명에게 비밀 메시지를 전송합니다. 수신측 클라이언트에서는 OnPrivateMessage 를 호출합니다.

Parameters
target이 메시제를 전송할 사용자명.
message전송하려는 메시지. 단순한 문자열이나 모든 직렬화할 수 있는 것.
Returns
이 클라이언트가 서버로 메시지를 전송할 수 있으면 True.
bool ExitGames.Client.Photon.Chat.ChatClient.SendPrivateMessage ( string  target,
object  message,
bool  encrypt 
)

사용자 한명에게 비밀 메시지를 전송합니다. 수신측 클라이언트에서는 OnPrivateMessage 를 호출합니다.

Parameters
target이 메시제를 전송할 사용자명.
message전송하려는 메시지. 단순한 문자열이나 모든 직렬화할 수 있는 것.
encrypt선택적으로, 비밀 메시지는 암호화 될 수 있습니다. 서버가 메시지를 암호를 복호화하므로 엔드투엔드 암호화는 아닙니다.
Returns
이 클라이언트가 서버로 메시지를 전송할 수 있으면 True.
void ExitGames.Client.Photon.Chat.ChatClient.Service ( )

클라이언트와 서버의 연결상태를 유지하고 수신되는 메시지 처리를 위해 규칙적으로 호출해주어야 합니다.

이 메소드는 자동으로 전용 변수 msDeltaForServiceCalls 을 사용하는 노력을 제한합니다. 이 값은 연결 보다 적고 채팅-서버 연결이 되어 있으면 4배 입니다.

bool ExitGames.Client.Photon.Chat.ChatClient.SetOnlineStatus ( int  status)

상태-메시지 변경없이 사용자의 상태를 설정합니다.

사전 정의된 상태값은 ChatUserStatus에 있습니다. ChatUserStatus.Invisible 상태는 오프라인상태로 만들어서 모든 사용자가 메시지를 전송할 수 없습니다.

상태 정수값으로 커스텀 값을 설정할 수 있습니다. 사전 설정된 것을 별도로 하고, 모든 상태는 보이며 온라인 상태로 취급됩니다. 그렇지 않으면 아무도 커스텀 상태를 보지 못하게 될 것 입니다.

이 오러로드는 설정된 메시지를 변경하지 않습니다.

Parameters
statusChatUserStatus 클래스에서 사전정의된 상태들. 다른 값은 필요에 따라 사용할 수 있습니다.
Returns
서버에서 오퍼레이션이 호출되면 True.
bool ExitGames.Client.Photon.Chat.ChatClient.SetOnlineStatus ( int  status,
object  message 
)

상태-메시지 변경없이 사용자의 상태를 설정합니다.

사전 정의된 상태값은 ChatUserStatus에 있습니다. ChatUserStatus.Invisible 상태는 오프라인상태로 만들어서 모든 사용자가 메시지를 전송할 수 없습니다.

상태 정수값으로 커스텀 값을 설정할 수 있습니다. 사전 설정된 것을 별도로 하고, 모든 상태는 보이며 온라인 상태로 취급됩니다. 그렇지 않으면 아무도 커스텀 상태를 보지 못하게 될 것 입니다.

메시지 객체는 Photon 이 직력화 할 수 있는 모든 것이 될 수 있습니다.Hashtable, object[] 과 string 이 될 수 있습니다(이에 국한되지는 않습니다). 이 값은 내 대화에 의해서 정의 됩니다.

Parameters
statusChatUserStatus 클래스에서 사전정의된 상태들. 다른 값은 필요에 따라 사용할 수 있습니다
message친구들이 받을 수 있는 상태-메시지도 설정합니다.
Returns
True if the operation gets called on the server.
void ExitGames.Client.Photon.Chat.ChatClient.StopThread ( )
bool ExitGames.Client.Photon.Chat.ChatClient.Subscribe ( string[]  channels)

이름으로 나열된 채널 목록을 구독하는 오퍼레이션을 전송합니다.

Parameters
channels구독하려는 채널 목록. null 또는 비어있는 값은 피해주세요.
Returns
오퍼레이션을 모두 전송할 수 있으면 (예: 채팅 서버에 연결되어 있지 않으면 실패).
bool ExitGames.Client.Photon.Chat.ChatClient.Subscribe ( string[]  channels,
int  messagesFromHistory 
)

채널에 클라이언트 구독을 위해 오퍼레이션 전송, 선택적으로 캐시로 부터 메시지의 갯수를 가져옴.

채널을 구독하면 이 사용자에게 새로운 메시지를 포워딩할 것 입니다. 이렇게 하기 위해 PublishMessage를 사용하세요. 이 메시지 캐시는 제한되지만 필요에 따라 진행되는 대화에 참여하기 위해 유용합니다.

Parameters
channels구독하려는 채널 목록. null 또는 비어있는 값은 피해주세요.
messagesFromHistory0: 이력없음. 1 이상: 이력에 있는 메시지 갯수. -1: 사용할 수 있는 이력 모두.
Returns
오퍼레이션을 모두 전송할 수 있으면 (예: 채팅 서버에 연결되어 있지 않으면 실패).
bool ExitGames.Client.Photon.Chat.ChatClient.TryGetChannel ( string  channelName,
bool  isPrivate,
out ChatChannel  channel 
)

Simplified access to either private or public channels by name.

Parameters
channelName얻기위한 채널 이름. 비공개 채널에 대해서는 channel-name은 두 사용자 이름으로 구성되어 있습니다..
isPrivate비공개 또는 공개철로로 예상되면 정의함.
channel출력 파라미터는 검색된 채널이 있으면 검색된 채널.
Returns
채널이 있으면 True.
bool ExitGames.Client.Photon.Chat.ChatClient.TryGetChannel ( string  channelName,
out ChatChannel  channel 
)

이름으로 모든 채널에 간단히 접근합니다. 공개 채널을 우선 검토한 후 비밀 채널을 검토합니다.

Parameters
channelName얻으려는 채널의 이름.
channel출력 파라미터는 검색된 채널이 있다면 검색된 채널.
Returns
채널이 있으면 True.
bool ExitGames.Client.Photon.Chat.ChatClient.Unsubscribe ( string[]  channels)

채널 목록을 구독해지 하여 채널 목독의 메시지 수신이 중지됩니다.

서버가 이 요청에 대해서 응답을 전송하자마자, 클라이언트는 PublicChannels 딕셔너리에서 이 채널들을 제거합니다.

요청은 서버로 전송되고 서버에서 실제로 채널 구독이 제거되면 IChatClientListener.OnUnsubscribed 이 호출 됩니다.

구독해제는 null 또는 비어있는 채널 명이 있을 때 실패합니다.

Parameters
channels구독해지할 채널들의 이름
Returns
채팅 서버에 연결되어 있지 않으면 False.

Member Data Documentation

ChatPeer ExitGames.Client.Photon.Chat.ChatClient.chatPeer = null
int ExitGames.Client.Photon.Chat.ChatClient.MessageLimit

0 보다 크면 로컬에 캐시되는 메시지의 갯수가 제한됩니다.

채팅에서 사용되는 메모리 양을 제한할 때 매우 유용할 수 있습니다. 채널당 MessageLimit울 설정할 수 있지만 이 값은 새로운 채널에만 적용됩니다.

노트: 이 값을 변경해도 이미 사용중인 ChatChannel 에는 영향을 주지 않습니다.

readonly Dictionary<string, ChatChannel> ExitGames.Client.Photon.Chat.ChatClient.PrivateChannels
readonly Dictionary<string, ChatChannel> ExitGames.Client.Photon.Chat.ChatClient.PublicChannels

Property Documentation

string ExitGames.Client.Photon.Chat.ChatClient.AppId
get

Photon 클라우드로부터 할당된 AppID 입니다. 자체 호스트를 하고 있으면, 이것은 "일반적인" Photon 서버 어플리케이션 이름입니다. (대부분이: "LoadBalancing").

string ExitGames.Client.Photon.Chat.ChatClient.AppVersion
get

클라이언트의 버전입니다. 새로운 버전은 이전 클라이언트 버전들에서 플레이어들을 분리하기 위해서 새로운 "virtual app" 도 생성합니다.

AuthenticationValues ExitGames.Client.Photon.Chat.ChatClient.AuthValues
getset

연결전에만 설정할 수 있습니다!

bool ExitGames.Client.Photon.Chat.ChatClient.CanChat
get
string ExitGames.Client.Photon.Chat.ChatClient.ChatRegion
getset

연결전에만 설정할 수 있습니다! 기본값은 "EU" 입니다.

DebugLevel ExitGames.Client.Photon.Chat.ChatClient.DebugOut
getset

라이브러리에서 발생하는 디버그 출력에 대한 레벨(그리고 양)을 설정합니다.

IChatClientListener.DebugReturn 의 콜백에 영향을 줍니다. 기본 레벨: Error.

ChatDisconnectCause ExitGames.Client.Photon.Chat.ChatClient.DisconnectedCause
get
string ExitGames.Client.Photon.Chat.ChatClient.FrontendAddress
get

네임 서버로부터 할당된 실제 채팅 서버 주소. 공개이며 읽기전용입니다. 공개이며 읽기전용입니다.

string ExitGames.Client.Photon.Chat.ChatClient.NameServerAddress
get

가장 최근에 연결한 네임 서버 주소.

ChatState ExitGames.Client.Photon.Chat.ChatClient.State
get

현재ChatClient 의 상태. CanChat 도 사용하세요.

string ExitGames.Client.Photon.Chat.ChatClient.UserId
get

사용자/개인의 유일한 ID로 AuthValues.UserId 에 저장됩니다. 연결전에 설정 해주세요.

이 값은 AuthValues.UserId 를 래핑합니다. 닉네임이 아니고 동일한 userID 를 가지고 있다면 동일인으로 간주합니다.