web-msg-sender(socket主动推送)

web-msg-sender地址(windows)

这个逻辑包来自与我对php的websocket了解 由于原声写websocket 更何况我是一个小白 还需要一个段时间不能完成的需求(php websocket 主动推送 还有 php7.3 多线程原因)
主要应用 : 微信支付完成推送前端数据

  • 我为什么不去谷狗 ?
    集中答案如下
  1. 开启多线程模式
    很简单 看不懂 太高深 短时间内不可能完成 更何况一点都不通的 websocket多线程模式
    在来讲一讲 怎么安装web-msg-sender
    如果没有composer 的话 请先安装这个 composer 官网地址
    composer是PHP的包管理、包依赖关系管理工具(就像node的npm一样),有了它,我们就很轻松一个命令就可以把他人优秀的代码用到我们的项目中来,而且很容易管理依赖关系,更新删除等操作也很轻易的实现。

安装composer (windows)

  1. 下载安装脚本 - composer-setup.php - 到当前目录: php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
  2. 执行安装过程 : php composer-setup.php
  3. 删除安装脚本 : php -r "unlink('composer-setup.php');"

局部安装

上述下载 Composer 的过程正确执行完毕后,可以将 composer.phar 文件复制到任意目录(比如项目根目录下),然后通过 php composer.phar 指令即可使用 Composer 了!

全局安装

  1. 找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。
  2. 将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。
  3. 在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。
    @php "%~dp0composer.phar" %*
    最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号。

切换为国内镜像:composer config -g repo.packagist composer https://packagist.phpcomposer.com

  • 安装依赖
    composer install
  • 更新所有依赖
    composer update
  • 更新指定的包
    composer update monolog/monolog
  • 更新指定的多个包
    composer update monolog/monolog symfony/dependency-injection
  • 还可以通过通配符匹配包
    composer update monolog/monolog symfony/*

web-msg-sender 安装及使用

  1. 因为我的项目是moodle系统的二次开发,可能和小伙伴们有些不同 但原理基本一直
前端代码

附带上socketio官方地址
local/localname/amd/**.js

 // 本工程基于AMD模范开发 
  define(['jquery', 'core/ajax','local_wxpay/socketio'], function($, ajax,io) {
   socket = io('http://localhost:2120',{'reconnect':true,'auto connect':true,'force new 
 connection':true});  // 创建
 //reconnect ::  开启重新连接  **非常重要
 //force new connection  ::强制新连接
 //auto connect ::自动连接
 socket.connect();// 开始链接
 // 我这里用到了以下这几个api
 socket.on('disconnect',function() {
       console.log('断开连接');
     });
 }
 socket.on('connect', function(){
       socket.emit('login', 1665);
      //      login :链接字段
      //      1665: 链接id
 });
 socket.on('new_msg', function(msg){
  // 后端推送来消息时
  //  后端接收到相匹配的字段返回的数据 在这里操作逻辑
  ***····**
 }
// 后端推送来在线数据时 多少人在线
 socket.on('update_online_count', function(online_stat){
       console.log(online_stat);
});

// ****比较重要 *** 关闭时重新链接
 socket.disconnect();
 socket.on('reconnect', function(){
  console.log('重新连接');
 });
// 对于初初接触者 可能对这个端口号比较敏感 我会在下文中详细标注
//'local_wxpay/socketio'  为引用外部socketio
//与<script src='//cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script> 一致
//可以打开//cdn.bootcss.com/socket.io/1.3.7/socket.io.js 这个链接 把代码拷到本地
后端代码

local/localname/utils/socketio.php
这里代码就比较简洁了 此方法是在微信的回调url的php文件中使用

<?php
function test($xmldata,$userid,$ip){
    $to_uid = $userid;
    $jsoninfo = json_encode([status=>true,res=>$xmldata]);
    // 推送的url地址,使用自己的服务器地址  模拟发送请求
    $push_api_url = "http://$ip:2121/";
    $post_data = array(
        "type" => "publish",
        "content" => $jsoninfo,
        "to" => $to_uid,
    );
    $ch = curl_init ();
    curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
    curl_setopt ( $ch, CURLOPT_POST, 1 );
    curl_setopt ( $ch, CURLOPT_HEADER, 0 );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
    curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
    $return = curl_exec ( $ch );
    //    $json = json_decode($return);
    curl_close ( $ch );
    var_export($return);
}
// 可自行调用test函数进行调试

端口问题

  • 服务端监听端口: 2123
  • 客户端监听端口: 2120
  • 消息推送端口: 2121
大概就是这个样子
启用socketio服务

web-msg-sender-master\start_for_win.bat双击打开这个文件运行项目
愉快的进行测试吧~

如果觉得有帮助 请给小编一个star
你的star✨、点赞和关注是我持续创作的动力!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353