PHPackages                             ledc/think-push - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. ledc/think-push

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

ledc/think-push
===============

免费的即时通讯推送服务端插件，客户端基于订阅模式，兼容 pusher，拥有众多客户端如JS、安卓(java)、IOS(swift)、IOS(Obj-C)、uniapp、.NET、 Unity、Flutter、AngularJS等。后端推送SDK支持PHP、Node、Ruby、Asp、Java、Python、Go、Swift等。

v7.4.3(9mo ago)03MITJavaScriptPHP &gt;=7.4

Since Aug 9Pushed 9mo agoCompare

[ Source](https://github.com/ledccn/think-push)[ Packagist](https://packagist.org/packages/ledc/think-push)[ RSS](/packages/ledc-think-push/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

push
====

[](#push)

thinkphp 服务端推送插件

一个免费的推送服务端插件，客户端基于订阅模式，兼容 [pusher](https://pusher.com/)，拥有众多客户端如JS、安卓(java)、IOS(swift)、IOS(Obj-C)、uniapp、.NET、 Unity、Flutter、AngularJS等。后端推送SDK支持PHP、Node、Ruby、Asp、Java、Python、Go、Swift等。客户端自带心跳和断线自动重连，使用起来非常简单稳定。适用于消息推送、聊天等诸多即时通讯场景。

插件中自带一个网页js客户端push.js以及uniapp客户端`uniapp-push.js`，其它语言客户端在 [https://pusher.com/docs/channels/channels\_libraries/libraries/](https://pusher.com/docs/channels/channels_libraries/libraries/) 下载

具体使用请看：

原版地址：

安装
--

[](#安装)

```
composer require ledc/think-push
```

js 文件说明
-------

[](#js-文件说明)

---

```
  push-uniapp.js #适用于uniapp项目内使用
  push-vue.js #适用于vue项目内使用
  push.js #适用于直接引入js常规项目内使用、
  push-miniprogram.js #适用于微信小程序项目内使用
```

### push-vue.js 使用说明

[](#push-vuejs-使用说明)

---

1、将文件 push-vue.js 复制到项目目录下，如：src/utils/push-vue.js

2、在 vue 页面内引入

```

import {  onMounted } from 'vue'
import { Push } from '../utils/push-vue'

onMounted(() => {
  console.log('组件已经挂载')

  //实例化webman-push

  // 建立连接
  var connection = new Push({
    url: 'ws://127.0.0.1:3131', // websocket地址
    app_key: '',
    auth: 'https://你的域名.com/plugin/webman/push/auth' // 订阅鉴权(仅限于私有频道)
  });

  // 假设用户uid为1
  var uid = 1;
  // 浏览器监听user-1频道的消息，也就是用户uid为1的用户消息
  var user_channel = connection.subscribe('user-' + uid);

  // 当user-1频道有message事件的消息时
  user_channel.on('message', function (data) {
    // data里是消息内容
    console.log(data);
  });
  // 当user-1频道有friendApply事件时消息时
  user_channel.on('friendApply', function (data) {
    // data里是好友申请相关信息
    console.log(data);
  });

  // 假设群组id为2
  var group_id = 2;
  // 浏览器监听group-2频道的消息，也就是监听群组2的群消息
  var group_channel = connection.subscribe('group-' + group_id);
  // 当群组2有message消息事件时
  group_channel.on('message', function (data) {
    // data里是消息内容
    console.log(data);
  });

})

```

### push-miniprogram.js 使用说明

[](#push-miniprogramjs-使用说明)

---

1、将文件 push-miniprogram.js 复制到项目目录下，如：src/utils/push-miniprogram.js

2、在 app.js内引入

```
import Push from '../utils/push-miniprogram'

App({

  onLanuch(() => {

    //实例化webman-push

    // 建立连接
    var connection = new Push({
      url: 'ws://127.0.0.1:3131', // websocket地址
      app_key: '',
      auth: 'https://你的域名.com/plugin/webman/push/auth' // 订阅鉴权(仅限于私有频道)
    });

    // 假设用户uid为1
    var uid = 1;
    // 浏览器监听user-1频道的消息，也就是用户uid为1的用户消息
    var user_channel = connection.subscribe('user-' + uid);

    // 当user-1频道有message事件的消息时
    user_channel.on('message', function (data) {
      // data里是消息内容
      console.log(data);
    });
    // 当user-1频道有friendApply事件时消息时
    user_channel.on('friendApply', function (data) {
      // data里是好友申请相关信息
      console.log(data);
    });

    // 假设群组id为2
    var group_id = 2;
    // 浏览器监听group-2频道的消息，也就是监听群组2的群消息
    var group_channel = connection.subscribe('group-' + group_id);
    // 当群组2有message消息事件时
    group_channel.on('message', function (data) {
      // data里是消息内容
      console.log(data);
    });
  })
})
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance57

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

281d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4af14254189bc74029cc40f4206f8006872b0cd092c680201f204a85a490f143?d=identicon)[ledccn](/maintainers/ledccn)

---

Top Contributors

[![ledccn](https://avatars.githubusercontent.com/u/53997080?v=4)](https://github.com/ledccn "ledccn (4 commits)")

### Embed Badge

![Health badge](/badges/ledc-think-push/health.svg)

```
[![Health](https://phpackages.com/badges/ledc-think-push/health.svg)](https://phpackages.com/packages/ledc-think-push)
```

###  Alternatives

[minishlink/web-push

Web Push library for PHP

1.9k12.0M53](/packages/minishlink-web-push)[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2587.7M12](/packages/laravel-notification-channels-twilio)[spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

4422.3M16](/packages/spatie-url-signer)[mattketmo/email-checker

Throwaway email detection library

2742.0M5](/packages/mattketmo-email-checker)[netflie/laravel-notification-whatsapp

Laravel notification driver for WhatsApp

176173.9k](/packages/netflie-laravel-notification-whatsapp)[opcodesio/mail-parser

Parse emails without the mailparse extension

226.8M8](/packages/opcodesio-mail-parser)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
