日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

thinkphp5+workerman搭建微信小程序socket后台,建立自己的聊天室

發布時間:2024/4/17 php 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 thinkphp5+workerman搭建微信小程序socket后台,建立自己的聊天室 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

1、下載安裝tp5

這一步就不詳細說了,比較簡單,直接看TP文檔吧

2、通過composer,為tp5集成workermantp

官方真不錯,提供了workerman的集成方法,通過composer一鍵安裝,詳細內容見tp官方的github

3、寫應用,先讓workerman在tp中跑起來(直接應用tp官方內容)

首先創建控制器類并繼承 think\worker\Server,然后設置屬性和添加回調方法

namespace app\index\controller; use think\worker\Server; class Worker extends Server {protected $socket = 'ws://0.0.0.0:2346';public function onMessage($connection,$data){//這里寫具體的邏輯$connection->send($data);} }

支持workerman(具體用法請看workerman文檔)所有的回調方法定義(回調方法必須是public類型)
在應用根目錄增加入口文件 server.php

#!/usr/bin/env php < ?php define('APP_PATH', __DIR__ . '/application/'); define('BIND_MODULE','index/Worker'); // 加載框架引導文件 require __DIR__ . '/thinkphp/start.php'; <!--?php define('APP_PATH', __DIR__ . '/application/'); define('BIND_MODULE','index/Worker'); // 加載框架引導文件 require __DIR__ . '/thinkphp/start.php';

在命令行啟動服務

php server.php start

linux下面可以支持下面指令

php server.php start|stop|status|restart|reload

打開chrome瀏覽器,按F12打開調試控制臺,在Console一欄輸入(或者把下面代碼放入到html頁面用js運行)

// 假設服務端ip為127.0.0.1 ws = new WebSocket("ws://127.0.0.1:2346"); ws.onopen = function() {alert("連接成功");ws.send('tom');alert("給服務端發送一個字符串:tom"); }; ws.onmessage = function(e) {alert("收到服務端的消息:" + e.data); };

可以看到返回說明搭建成功

4、重點來了,就是讓ws變成wss,這也是最頭疼的問題,需要使用nginx代理

首先,需要為你需要訪問的域名申請SSL,這里是通過Nginx的反向代理實現功能,具體配置如下:

upstream websocket {# 填寫workerman中websocket監聽的端口server 127.0.0.1:2346; }server {# 填寫外部wss連接端口,不沖突即可listen 8282;ssl on;server_name test.painchina.com;ssl_certificate ? ? ?key/key.csr;ssl_certificate_key ?key/key.key;ssl_session_timeout 5m;ssl_session_cache shared:SSL:50m;ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;location / {proxy_pass http://websocket;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";} }

(1)把test.painchina.com換成你自己的訪問域名
(2)把key.csr和key.key修改為你自己的SSL證書內容

5、搭建成功,訪問試試

根據上面這個配置,訪問地址為wss://test.painchina.com:8282

注意:微信小程序的sock鏈接不能帶端口的,默認端口是443,帶端口連接會出現開發工具、預覽版正常,體驗版和正式版錯誤

轉載于:https://my.oschina.net/bibo/blog/1498974

總結

以上是生活随笔為你收集整理的thinkphp5+workerman搭建微信小程序socket后台,建立自己的聊天室的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。