php一对多聊天程序代码,微信小程序实现一对多发消息
微信小程序中实现一对多发消息详解及实例代码
微信小程序中各个界面之间的传值和通知比较蛋疼。所以模仿了iOS中的通知中心,在微信小程序中写了一套类似的通知中心。
通知中心可以做到:1对多发消息,传递object。使用十分简洁。
使用时,在需要接收消息的界面注册一个通知名。然后在需要发消息的界面post这个通知名就可以了。可以在多个界面注册同一个通知名。这样就可以1对多发消息。
使用方法:
1:在app.js中引用notification.js
var notificationCenter = require('/utils/notification.js'); //这里请改为你的绝对路径
2:在app.js中添加:
App({
onLaunch: function (){
this.notificationCenter = notificationCenter.center();
},
notificationCenter:null,
})
3: 接收通知的page.js中注册
PageA.js:
var app = getApp();
Page({
onLoad:function(options){
app.notificationCenter.register("一个通知名称",this,"didReceviceAnyNotification");
},
didReceviceAnyNotification:function(name,content){
console.log("接收到了通知:",name, content);
},
})
4: 发出通知的page.js中
PageB.js 任意函数
var app = getApp();
Page({
anyFunction:function(){
app.notificationCenter.post("通知名称",{
//任意通知object
}) ;
},
})
实现:
var notificationCenter = {
notificationCenter:{},
// 向通知中心注册一个监听者。
// name: 监听的通知名称
// observer: 监听者
// action: 监听者收通知时调用的方法名,
// func: 监听者收到通知时调用的函数,
// action func 2选1
register:function(name,observer,action,func){
if (!name || !observer) return;
if (!action && !func) return;
console.log("注册通知:",name,observer);
var center = this.notificationCenter;
var objects = center[name];
if (!objects){
objects = [];
}
this.remove(name,observer);
objects.push({
observer:observer,
action:action,
func:func
});
center[name] = objects;
},
// 从通知中心移除一个监听者
remove:function(name,observer){
if (!name || !observer) return;
var center = this.notificationCenter;
var objects = center[name];
if (!objects){
return;
}
var idx;
var object;
for(idx = 0;idx
var obj = objects[idx];
if (obj.observer == observer){
object = obj;
break;
}
}
if (object){
objects.splice(idx,1);
}
center[name] = objects;
},
// 通过通知中心发出通知
// name: 通知名称
// notification: 通知内容
post:function(name,notification){
if (!name) return;
console.log("准备发出通知:",name,notification);
var center = this.notificationCenter;
var objects = center[name];
if (!objects){
objects = [];
}
objects.forEach(function(object){
var observer = object.observer;
var action = object.action;
var func = object.func;
if (observer && action){
func = observer[action];
}
func(notification);
});
console.log("完成向 ",objects.length," 个监听者发出通知:",name);
}
}
function center(){
return notificationCenter;
}
module.exports.center = center;
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
更多微信小程序实现一对多发消息相关文章请关注PHP中文网!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php一对多聊天程序代码,微信小程序实现一对多发消息相关推荐
- GetWeApp聊天室 代码(微信小程序)
说明: 实现聊天功能,特色: 使用webSocket实现即时通信 发送和显示表情 数据接口: 数据接口 目录结构&#
- 自从自己搭建了这套精选壁纸聊天背景的微信小程序,我的手机背景图再都没重复过
前不久刚学习完如何使用hbuilder还有微信开发者工具的简单应用,借着对拥有自己搭台出来的小程序的渴望,在网上物色了很久,终于找到一套比较好用切可用的手机壁纸小程序. 先看看运行起来的样子吧 运行D ...
- 微信小程序开发教程||微信小程序 小程序简介||微信小程序 开始||微信小程序 小程序代码构成
微信小程序 小程序简介 小程序简介 小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序技术发展史 小程序并非凭空冒出来的一个概念.当微信中的 ...
- 【微信小程序】关于H5跳转微信小程序、微信小程序跳转H5、微信小程序跳转微信小程序的实现方法
0 说明 业务提出需求,要实现H5跳转微信小程序的需求,在浏览器.微信环境下,都能通过H5跳转进入小程序. 另外,本文也将微信小程序跳转到H5,以及微信小程序跳转到微信小程序的方法进行汇总. 对于,微 ...
- 【小程序】微信小程序开发技巧实用手册(自己做笔记用)
[Css]Css和Html常用设计实例参考笔记(自己开发项目用)_敦厚的曹操的博客-CSDN博客_html和css的项目实例一.左右居中1.div等块元素左右居中margin: 0 auto;marg ...
- PHP:【微信小程序】初识微信小程序,微信小程序配置
PHP:[微信小程序]初识微信小程序,微信小程序配置 一.介绍 小程序提供了一个简单.高效的应用开发框架和丰富的组件及 API,帮助开发者在微信中开发具有原生 APP 体验的服务 小程序是一种全新的连 ...
- 《微信小程序》微信小程序用java后台连接数据库进行操作。
微信小程序与Java后台的通信 一.写在前面 最近接触了小程序的开发,后端选择Java,因为小程序的代码运行在腾讯的服务器上,而我们自己编写的Java代码运行在我们自己部署的服务器上,所以一开始不是很 ...
- (微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好
转载地址:(微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 作者:Happy王子乐 个人网站(整理 ...
- 【小程序】微信小程序云开发笔记详细教程(建议收藏)
1- 前言 1.1 微信云开发是什么? 微信云开发是微信团队联合腾讯云推出的专业的小程序开发服务. 开发者可以使用云开发快速开发小程序.小游戏.公众号网页等,并且原生打通微信开放能力. 开发者无需搭建 ...
最新文章
- GTK+重拾--08 GTK+中的对话框
- 第三章 线性代数回顾-机器学习老师板书-斯坦福吴恩达教授
- c++内存管理-内存顺序
- ASP.NET MVC中ViewData、ViewBag和TempData
- html与markdown互相转换
- JavaScriptSerializer 类
- 各种 IntelliJ IDEA 酷炫插件推荐
- SpringIOC控制反转之XML配置
- 项目集成腾讯移动直播总结--后端
- IPSEC VPN动态配置(示例)
- 我的世界python指令_我的世界Minecraft从0开始学指令。
- logo版权注册流程
- 网络安全,非对称加密,对称加密和非对称加密的区别
- 高一英语计算机课文,高一英语课本
- 翻翻git之---溜的飞起的加载效果AVLoadingIndicatorView
- l1300打印机纸进不去_爱普生打印机不进纸该怎么解决?
- 于东来:我赚大钱的秘诀在于分掉80%利润
- Django serializers.serialize 的使用
- 如何选择 HTML5 游戏引擎
- WordPress建站详细流程,WordPress入门
热门文章
- 关于jasmine里debugElement.query和fixture.detectChanges的依赖关系
- Angular自定义structural指令的实例化过程以及set方法的调用
- 几种常用的排序算法之JavaScript实现
- 如何查询SAP Cloud for Customer系统升级和维护时间
- How is new Appoinment id generated in my task followup scenario
- SAP Cloud for Customer跨component的跳转
- SAP云平台里UI5应用的build日志
- 解决BDOC structure里header和data structure里数据格式不一致的问题
- 关于SAP UI5 CRM Reuse Fiori应用的代码审查
- SAP Gigya(SAP Customer Data Cloud)的数据中心