美文网首页
web-msg-sender(socket主动推送)

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

作者: 不算程序员 | 来源:发表于2020-07-06 18:30 被阅读0次

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✨、点赞和关注是我持续创作的动力!

相关文章

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

    web-msg-sender地址(windows) 这个逻辑包来自与我对php的websocket了解 由于原声写...

  • Socket

    socket特点: 它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息, 是真正的...

  • Socket.io

    socket特点 它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向...

  • NodeJs实现WebSocket——express-ws

    简述 WebSocket是tcp/ip协议之上的一个Socket协议,是为了解决服务器向浏览器主动推送的场景而生,...

  • java socket推送

    客户端代码:客户端没调用一次就关掉,但是服务让其一直等待 importorg.springframework.st...

  • iOS开发 之 消息推送技术研究

    目录 引言 消息推送 Socket WebSocket 其他方案 心跳 附录 引言 现在的移动端开发, 消息推送是...

  • Erlang Socket消息获取模式主动 被动 混合

    1、主动消息获取(非阻塞)第一个例子是以主动模式打开socket,然后接受来自socket的数据:{ok,List...

  • 推送、套接字 Socket

    1.推送 iOS 中的通知包括本地推送通知和远程推送通知,两者在 iOS 系统中都可以通过弹出横幅的形式来提醒用户...

  • thinkphp整合使用Workerman(web-msg-se

    参考网址: https://github.com/walkor/web-msg-sender[https://gi...

  • netty学习系列九:记一次压测异常排查

    一、背景描述# 基于Netty做了一个消息推送服务,将消息总线中的消息推送给与消息推送服务器进行socket连接的...

网友评论

      本文标题:web-msg-sender(socket主动推送)

      本文链接:https://www.haomeiwen.com/subject/hpzuxktx.html