介绍

实时通信是Web开发的圣杯,由于有了Web Sockets API,我们终于能够将其整合到我们的应用程序中。 但是,与大多数浏览器API一样,Web Sockets API的级别也很低,如果您花了很多时间使用它,那么您就会知道有效使用它会有多么困难。

但是,今天,我们口袋里有超级计算机,每天都可以使用,而且用户希望在Web,移动设备甚至台式机上都能获得相同的实时体验。 在本系列中,您将学习Channels ,该平台可让您为用户提供所需的无缝实时体验。

入门参考

场景:

1、JavaScript 作为客户端订阅频道

2、PHP 作为服务端发布消息到频道

(1)在客户端订阅事件

创建账号

创建一个帐户,然后创建一个 Channels 应用程序。转到该应用程序的“密钥”页面,并记下您的 app_id、密钥、密钥和集群。

下载频道客户端

在您的页面上包含 pusher-js 脚本标签。

<script src="https://js.pusher.com/7.0.3/pusher.min.js"></script>

打开与频道的连接  

使用您之前记下的密钥和集群打开与 Channels 的连接。

var pusher = new Pusher("APP_KEY", {cluster: "APP_CLUSTER",
});

订阅频道

您将很快将一个事件发布到一个名为 my-channel 的频道,并且您的 Web 应用程序将收到此事件。但要接收此事件,您的 Web 应用首先需要订阅 my-channel 频道。使用 pusher.subscribe 执行此操作:

var channel = pusher.subscribe("my-channel");

监听频道上的事件

每个发布的事件都有一个“事件名称”。 您将发布的事件将具有事件名称 my-event。 为了让您的 Web 应用程序在收到名为 my-event 的事件时执行某些操作,您的 Web 应用程序必须首先将一个函数“bind”到此事件名称。 使用通道的绑定方法执行此操作:

channel.bind("my-event", (data) => {// Method to be dispatched on trigger.
});

最后完整的代码

<!DOCTYPE html>
<head><title>Pusher Test</title><script src="https://js.pusher.com/7.0/pusher.min.js"></script><script>// Enable pusher logging - don't include this in productionPusher.logToConsole = true;var pusher = new Pusher('108365f54d1d934e7678', {cluster: 'ap3'});var channel = pusher.subscribe('my-channel');channel.bind('my-event', function(data) {alert(JSON.stringify(data));});</script>
</head>
<body><h1>Pusher Test</h1><p>Try publishing an event to channel <code>my-channel</code>with event name <code>my-event</code>.</p>
</body>

(2)从服务器发布事件

使用下面的服务器代码向您订阅的客户端发布一个事件,您打开的任何(和所有)客户端都会收到该事件,包括此页面。

安装服务端SDK

composer require pusher/pusher-php-server

目录结构

参考伪代码 server.php

<?php
/*** @desc pusher server* @author Tinywan(ShaoBo Wan)* @date 2022/01/29 23:02*/
require_once '../../vendor/autoload.php';$options = array('cluster' => 'ap3','useTLS' => true
);
$pusher = new Pusher\Pusher('108365f54d1d934e7678','9cfbfd3b06290c427de6','1339434',$options
);$data['message'] = 'hello world Tinywan';
$pusher->trigger('my-channel', 'my-event', $data);

运行以上脚本代码

  

客户端弹框提示

实时通信 | pusher 入门教程(一)相关推荐

  1. MVC中使用signalR入门教程

    一.前言:每次写总要说一点最近的感想 进入工作快半年了,昨天是最郁闷的一天,我怀疑我是不是得了"星期一综合征",每个星期一很没有状态.全身都有点酸痛,这个可能一个星期只有周末才打一 ...

  2. Node.js 官网入门教程(一) CommonJS 模块规范、Node.js REPL、console、CLI、exports

    Node.js 官网入门教程(一) CommonJS 模块规范.Node.js REPL.console.CLI.exports 文章目录 Node.js 官网入门教程(一) CommonJS 模块规 ...

  3. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  4. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  5. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  6. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  7. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

  8. python tensorflow教程_TensorFlow入门教程TensorFlow 基本使用T

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TensorFlow入门教程 TensorFlow 基本使用 TensorFlow官方中文教程 TensorFlow 的特点: 使用图 (graph) 来 ...

  9. air调用java,AIR2.0入门教程:与Java应用交互

    在之前的一篇文章中,我介绍了如何使用AIR2.0新增的NativeProcess类与本地进程进行交互和通讯,在那个例子里面我们使用了C++ 的代码,实际上只要是基于命令行的标准输入输出,AIR2.0的 ...

最新文章

  1. 参加UI培训就业多长时间
  2. imageserver
  3. Java中几种常见的循环
  4. Struts2 之 ActionContext获取WEB资源
  5. 年薪60w财务总监的加薪秘诀:从不用Excel做报表
  6. 我的linux学习之旅:(4)搭建mysql数据库
  7. 管理R包——Pacman包介绍
  8. 自定义QListWidget实现item被hover时改变图标样式(模仿网易云音乐选项列表)(方法二)
  9. 计算机应用课程的考核情况,《计算机应用技术》课程kpi考核说明..doc
  10. android文件恢复功能,安卓手机误删文件恢复?快速恢复办法
  11. exe文件更换图标方法
  12. JavaWeb实现裁剪图片上传完整代码
  13. while True:just do it
  14. 品读《你不努力,谁也给不了你想要的生活》
  15. Playframework介绍
  16. ERROR : Error appeared during Puppet run: x.x.x.x _keystone.pp
  17. lopa分析_保护层分析(LOPA)的优势与局限?
  18. 嵌入式系统概述及特点
  19. linux yum安装mysql及配置
  20. 火影忍者手游服务器维护多久,火影忍者手游12月26月维护更新公告 全新职业等级剧情上线...

热门文章

  1. vue 下拉选是多选的,并且回显
  2. PSINS之基于Allan方差分析的陀螺仪漂移误差辨识与仿真复现
  3. 古风排版(C语言实现)
  4. 关于中秋节的网页html5,中秋节H5案例合集:freestyle、快闪以及一镜到底
  5. 阿里云ECS服务器部署Node.js项目详细教程及多网站部署
  6. android系统的简单定制
  7. 学习太极创客 — MQTT(二)MQTT 基本原理
  8. 滴滴自动驾驶 | 基础架构如何以终为始,稳定先行?
  9. SpringBoot 配置 HTTPS 安全证书的两种方案
  10. postgresql 通过制作函数实现16进制转换为10进制