栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

gatewayworker与tp3.2.3结合开发即时聊天示例

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

gatewayworker与tp3.2.3结合开发即时聊天示例

第一步:下载tp3.2.3、GatewayWorker、GatewayClient;解压后把tp和Gatewayworker放在同一个目录下面(根目录下面);
第二步:将GatewayClient中的Gateway.php重命名为Gateway.class.php;修改其内容如下:1.namespace OrgUtil;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文件内容如下:

uid = I('uid');

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

    function bind() {
 $uid = session('uid');
 $client_id = I('client_id');

 $gateway = new OrgUtilGateway();
 $gateway->bindUid($client_id, $uid);
 $message = '绑定成功' . $uid . '-' . $client_id;
 $gateway->sendToUid($uid, $message);
    }

    function message() {
 $to_uid = I('uid');
 $message = I('msg');
 $gateway = new OrgUtilGateway();
 $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文件内容为:(其他文件自己建,不贴了)




    
    chatroom
    

    


第五步:打开GatewayWorker文件下的.bat文件,去浏览器中访问你设置的虚拟路由地址即可。
这个是非常简单的demo吧,仅提供思路什么的,欢迎大神指点一二。另外这个如果在本地运行的话,因为你的电脑ip是唯一的,所以你的uid是唯一的,不会因为你打开两个浏览器就可以实现对话了。不过当你能在一个浏览器上收到自己发出的消息,基本没问题了。
目前还没解决的问题:如何在windows下,不手动运行.bat文件,使其自动运行gatewayworker环境,这个.bat作用不多说,因为我自己的网站也是windows的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/226981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号