PHP의 실시간 채팅(Rongyun Communication 기반)은 현재 단순한 예일 뿐입니다.
오늘 저는 매우 흥미로운 프로젝트인 인스턴트 메시징 도구를 보았습니다. QQ와 같은 인기 있는 채팅 도구가 있지만 직접 만들어 보는 것은 여전히 흥미롭습니다.
이 사례는 Rongyun Communication을 기반으로 합니다. 공식 웹사이트 주소는 http://www.rongcloud.cn/입니다. 멋진 페이지가 없어서 직접 플러그인을 사용하고 있습니다. 내 관찰에 따르면 플러그인에는 최근 연락처 기능만 있습니다. 그럼 먼저 간단한 사례에 따라 구현해 보겠습니다. 마음에 들면 계속해서 직접 공부해도 됩니다!
먼저 Rongyun 계정을 등록한 다음 직접 인스턴스를 생성해야 합니다. --- 자세한 내용은 공식 웹사이트의 지침을 따르세요. 제가 제시한 예는 직접 사용할 수 있는 테스트 키 중 하나입니다. 아직은 tp5 프레임워크인데 어떻게 tp5 프레임워크를 구성하는지 모르기 때문에 더 이상 말하지 않겠습니다. 사용자 정보를 구현하기 위해 데이터베이스를 사용할 필요는 없습니다. 이는 주로 모든 사람에게 기능을 보여주기 위한 것입니다.
다양한 키에 대해 config.php<?php<br />
//配置文件<br />
return [<br />
<br />
'APP_KEY' => 'e0x9wycfxxx5q',<br>
'APP_SECRET' => 'F7sI8rkLtv'<br>
];
구성
//구성 파일
복귀 [<br />
<br />
'APP_KEY' => 'e0x9wycfxxx5q',<br>
'APP_SECRET' => 'F7sI8rkLtv'<br>
]; 그들이 준 열쇠가 너무 짧습니다. 계속하세요. 공식 SDK를 다운로드하여 확장 파일에 도입했습니다. 직접 호출할 수 있습니다. 채팅 페이지의 주요 메소드인 주요 부분부터 시작해 보겠습니다. <br>
Index.php<br><?php<br />
네임스페이스 appindexcontroller;<br />
<br />
rongyunServerAPI를 사용하세요;<br />
thinkController를 사용하세요.<br />
<br />
클래스 인덱스 확장 컨트롤러<br />
{<br />
공개 함수 _initialize()<br />
{<br />
If (비어 있음(쿠키('UID'))) {<br />
$this->redirect( url('login/index') );<br>
}<br>
}<br>
<br>
//채팅메인 메소드<br>
공용 함수 인덱스()<br>
{<br>
$appKey = config('APP_KEY');<br>
$appSecret = config('APP_SECRET');<br>
<br>
$rongYun = 새로운 ServerAPI( $appKey, $appSecret);<br>
<br>
$tx = "http://www.tk.com/static/images/1.jpg";<br>
If( 2 == 쿠키('uid') ){<br>
$tx = "http://www.tk.com/static/images/2.jpg";<br>
}<br>
$token = $rongYun->getToken( cookie('uid'), cookie('uname'), $tx );<br>
<br>
$token = json_decode( $token, true )['token'];<br>
$this->할당([<br>
'토큰' => $token<br>
]);<br>
return $this->fetch();<br>
}<br>
<br>
//모든 사용자 정보<br>
공개 함수 userInfo()<br>
{<br>
$return['userlist'] = [<br>
~ ~
~ ~
];<br>
json 반환( $return );<br>
}<br>
//로그인 사용자 정보
공개 함수 onLine()
{ $return['data'] = [<br>
~ ['id' => '1', 'status' =>
~ ['id' => '2', 'status' =>
];<br>
json 반환( $return );<br>
}<br>
}<br>저는 주로 효과를 보여주기 위해 온갖 종류의 코드를 죽도록 작성했습니다. 좋아, 나머지 코드는 내 github에 가서 다운로드하고 공식 웹사이트에 가서 비교해 보세요. 주로 실행하는 방법을 보여줍니다. login.php를 살펴보세요:<code class="prettyprint linenums lang-php"><?php<br />
네임스페이스 appindexcontroller;
<?php<br />
namespace appindexcontroller;<br />
<br />
use thinkController;<br />
<br />
class Login extends Controller<br />
{<br />
public function index()<br />
{<br />
return $this->fetch();<br>
}<br>
<br>
public function doLogin()<br>
{<br>
$param = input('param.');<br>
<br>
if( '张三' == $param['uname'] ){<br>
cookie('uid', 1);<br>
cookie('uname', '张三');<br>
}else if( '李四' == $param['uname'] ){<br>
<br>
cookie('uid', 2);<br>
cookie('uname', '李四');<br>
}<br>
<br>
$this->redirect( url('index/index') );<br>
}<br>
}
thinkController를 사용하세요.
클래스 로그인 확장 컨트롤러
{
공용 함수 인덱스()
{
return $this->fetch();
}
공개 함수 doLogin()
{
$param = input('param.');
If('장산'==$param['uname']){
쿠키('uid', 1);
쿠키('uname', 'Zhang San');
~ ~
쿠키('uid', 2);
쿠키('uname', 'lee思');
}
$this->redirect( url('index/index') );
}
} 하하, 제 로그인은 단지 사용자를 구별하기 위한 것입니다(실제 프로젝트에서는 그렇지 않습니다!). 보시다시피 한 사용자는 Zhang San이고 다른 사용자는 Li Si입니다. 비밀번호를 임의로 입력하시면 됩니다. 시연 효과를 살펴보겠습니다.
먼저 로그인이 되어 있지 않은 경우, 로그인 페이지로 이동합니다:
Zhang San을 사용하여 로그인하는 경우 다음을 기억하십시오: Zhang San의 ID는 1이며 이는 매우 중요합니다! 사용자 이름은 정확하며 비밀번호는 무작위로 입력되었습니다. 로그인 후 페이지는 다음과 같습니다.