项目背景:小程序中实现实时聊天功能
配置流程
配置参考的URL: https://developers.weixin.qq.com/miniprogram/dev/api/api-network.html
上游websocket { 哈希美元remote_addr一致; 服务器127.0.0.1:9090重量=5 max_fails=3 fail_timeout=30年代; } 服务器{ 听80; server_name www.xxxx.cn; 重写^ (. *)https://主机1美元美元永久性的; } 服务器 { 听443; server_name www.xxxx.cn; ssl> wget http://pecl.php.net/get/swoole-1.9.3.tgz//下载swoole 焦油-zvxf swoole-1.9.3。tgz//解压swoole cd swoole-1.9.3/;//进入swoole/usr/local/php54/bin/phpize;//生成配置 ./configure——with-php-config=/usr/地方/php/bin/php-config 使,,make install//安装 cd/phpstudy/服务器/php/lib/php/扩展/不-调试-非zt型- 20121212//查看是否安转上了swoole。(注意:此文件下边都是你安装的拓展) vim/phpstudy/服务器/php/etc/php。ini//在php . ini中添加扩展=swoole.so加入到文件最后一行 lnmp重启;//重启nginx php - m;//查看phpinfo,这时候swoole拓展已经装上了
1,创建server.php放到项目的根目录即可
& lt; & # 63; php//实例化一个swoole的websocket服务监听本机的9501端口 服务器=new swoole_websocket_server美元(“服务器IP”, 9090年);//只需要绑定要监听的ip和端口。如果ip指定为127.0.0.1,则表示客户端只能位于本机才能连接,其他计算机无法连接。//端口这里指定为9090,可以通过netstat查看下该端口是否被占用。如果该端口被占用,可更改为其他端口,如9502、9503等。 服务器→美元(“开放”,函数(服务器,美元swoole_websocket_server请求){ 回应“你好连接成功{$请求→fd} \ n”; }); 服务器→美元(“消息”,函数(服务器,美元swoole_websocket_server帧){ foreach($服务器→连接键=美元比;fd美元){ user_message=美元框架→数据; 服务器→美元推动(fd, user_message美元); } }); 服务器→美元(“关闭”,函数(ser、fd) { 回声“客户{$ fd}关闭\ n”; }); 服务器→美元开始(); & # 63;在
2,由于swoole_server只能运行在CLI模式下,所以不要试图通过浏览器进行访问,这样是无效的,我们在命令行下面执行,注意一定要找到php的绝对路径php server.php (这行代码的意思是,把程序在服务器跑起来)
注意:<代码> php服务器。php代码>命令运行后,下面的黑框关闭后将无法聊天。所以一般使用命令:<代码> nohup php服务器。php, 代码>
1,网页代码
& lt; !DOCTYPE html> & lt; html> & lt; head> & lt;元charset=皍tf - 8”比; & lt; title>聊天& lt;/title> & lt;风格类型=" text/css "比; #显示{ 宽度:600 px; 身高:300 px; overflow-y:滚动; } .my-message { background - color: rgba (105、105、105、0.64); 颜色:# 9 e0505; 宽度:200 px; 浮:正确; 填充:10 px; } .other-message { background - color: rgba (105、105、105、0.64); 颜色:# 9 e0505; 宽度:200 px; 浮:左; 填充:10 px; } & lt;/style> & lt;/head> & lt; body> & lt; div id="显示"祝辞& lt;/div> & lt; div类=懊姘濉北? 内容:& lt; textarea id=澳谌荨弊4? lt;/textarea> 收信人:& lt; input type=" text " id=俺臣堋北? & lt;输入类型="按钮" id=" send-btn " value=" https://www.yisu.com/zixun/发送”在 & lt;输入类型="按钮" id=" close-btn " value=" https://www.yisu.com/zixun/关闭”比; & lt;/div> & lt;/body> & lt;脚本src=" https://www.yisu.com/zixun/__PUBLIC__/js/jquery-1.10.2.min.js " charset=皍tf - 8”祝辞& lt;/script> & lt;脚本type=" text/javascript祝辞 var插座=new WebSocket (wss://域名”); $ (" # close-btn”)。点击(函数(){ socket.close (); }) $ (" # send-btn”)。点击(函数(){ var使用=$(" #用”).val (); var内容=$(" #内容”).val (); var htmlstr=" & lt; div> & lt; p类=拔业男畔ⅰ痹谖?”+内容+“& lt;/p> & lt;/div>”; $(" #秀”).append (htmlstr); socket.send(内容+“@”+用); }) 套接字。onmessage=函数(p1) { var htmlstr=" & lt; div> & lt; p class='其他消息在“+ p1.data +“& lt;/p> & lt;/div>”; $(" #秀”).append (htmlstr); } & lt;/script> & lt;/html>微信小程序实现即时通信聊天功能的实例代码