當前位置:編程學習大全網 - 源碼下載 - tp3怎麽集成gatewayworker

tp3怎麽集成gatewayworker

第壹步:下載tp3.2.3、GatewayWorker、GatewayClient;解壓後把tp和Gatewayworker放在同壹個目錄下面(根目錄下面);

第二步:將GatewayClient中的Gateway.php重命名為Gateway.class.php;修改其內容如下:1.namespace Org\Util;2.第35行的$registerAddress的端口號修改和GatewayWorker/Application/YourApp/下的三個start_文件裏面的“服務註冊地址”下端口號壹致;保存後將該文件放於tp框架的ThinkPHP/Library/Org/Util文件夾下;

第三步:將GatewayWorker中start_gateway.php的第24行Gateway括號內容修改為(“websocket://後面的不變”);Events.php的第40行修改為Gateway::sendToClient($client_id,json_encode(array('client_id'=>$client_id)));可註釋第42行代碼;

第四步:運行tp入口文件後,控制器Index.class.php文件內容如下:

<?php

namespace Home\Controller;

use Think\Controller;

class IndexController extends Controller {

public function index() {

$this->uid = I('uid');

session('uid', $this->uid);

$this->display();

}

function bind() {

$uid = session('uid');

$client_id = I('client_id');

$gateway = new \Org\Util\Gateway();

$gateway->bindUid($client_id, $uid);

$message = '綁定成功' . $uid . '-' . $client_id;

$gateway->sendToUid($uid, $message);

}

function message() {

$to_uid = I('uid');

$message = I('msg');

$gateway = new \Org\Util\Gateway();

$data['msg'] = $message;

$data['from_uid'] = session('uid');

$data['to_uid'] = $to_uid;

$gateway->sendToUid($to_uid, json_encode($data)); //發給對方

$gateway->sendToUid($data['from_uid'], json_encode($data)); //發給自己

echo json_encode($data);

}

}

視圖文件index.html文件內容為:(其他文件自己建)

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>chatroom</title>

<script type="text/javascript" src="/jquery/3.1.1/jquery.min.js"/></script>

<script type="text/javascript">

// 打開壹個 web socket

var ws = new WebSocket("ws://127.0.0.8:8282");

ws.onopen = function ()

{

};

ws.onmessage = function (evt)

{

var received_msg = evt.data;

alert("數據已接收..." + received_msg);

var jmsg = JSON.parse(received_msg);

if (jmsg.from_uid > 0) {

var t_msg = '<li>' + jmsg.from_uid + ' 說:' + jmsg.msg + '</li>';

$("#message").append(t_msg);

}

if (jmsg.client_id.length != 0) {

$.post("{:U('bind')}", {client_id: jmsg.client_id}, function (data) {

});

}

}

</script>

</head>

<body>

<ul id="message">

</ul>

<div>

<input name="uid" value="1" >

<input name="msg" value="" size="50">

<button type="button" id="send" >發送</button>

</div>

<script>

$(function () {

$("#send").click(function () {

var uid = $('input[name="uid"]').val();

var msg = $('input[name="msg"]').val();

$.post("{:U('message')}", {uid: uid, msg: msg}, function (data) {

$('input[name="msg"]').val('');

});

});

});

</script>

</body>

</html>

第五步:打開GatewayWorker文件下的.bat文件,去瀏覽器中訪問妳設置的虛擬路由地址即可。

作者: 子期不遇

鏈接:/article/17962?block_id=tuijian_wz

來源:慕課網

本文原創發布於慕課網 ,轉載請註明出處,謝謝合作!

  • 上一篇:小刀酷雅牌電摩電動車多少錢
  • 下一篇:小白請求android編程大佬幫忙,怎麽樣才能慢慢壹個接壹個顯示10個圓?
  • copyright 2024編程學習大全網