推送 1.0.0

快速集成推送、即时聊天等功能

该模块基于 webman/push,用于快速实现推送。
修改 push 模块根目录 push.php文件 APP-KEYAPP-SECRET,也可以在其他模块根目录添加 push.php 文件。

  1. <?php
  2. return [
  3. '[APP-KEY]' => [
  4. 'enable' => true,
  5. 'channel_hook' => 'http://127.0.0.1:8787/push/hook/[APP-KEY]',
  6. 'app_secret' => '[APP-SECRET]'
  7. ]
  8. ];

客户端订阅:

  1. <script src="/modules/push/js/push.js"></script>
  2. <script>
  3. var app_key = [APP-KEY];
  4. var connection = new Push({
  5. url: 'wss://www.yoursite.com',
  6. app_key: app_key,
  7. auth: '/push/auth/' + app_key
  8. });
  9. var private_channel = connection.subscribe('private-MESSAGECENTER-' + [ID]);
  10. private_channel.on('message', function(data) {
  11. // do something
  12. });
  13. var public_channel = connection.subscribe('MESSAGECENTER');
  14. public_channel.on('message', function(data) {
  15. // do something
  16. });
  17. </script>

私有频道鉴权:

  1. // 实现PushAuth事件
  2. public function onPushAuth($payload)
  3. {
  4. list($channel_name, $pusher) = $payload->params;
  5. if (get_user()->isLogin() && $channel_name == 'private-MESSAGECENTER-' . get_user()->uid) $payload->result = true;
  6. }

channel_hook:

  1. // 实现PushChannelHook事件
  2. public function onPushChannelHook($payload)
  3. {
  4. var_dump($payload);
  5. }

服务端推送

  1. $pusher = ev('Pusher', [APP-KEY]);
  2. $channel = 'private-MESSAGECENTER-' . $id;
  3. $pusher->trigger($channel, 'message', [
  4. 'from' => $from,
  5. 'message' => $message
  6. ]);
更新历史
  • 1.0.0
    2022-5-3
    首次发布
下载

模块信息
名称:推送
标识:push
版本:1.0.0
作者:Admin

Ta的其他作品