微信小程序与AspNetCore SignalR聊天实例

微信小程序与aspnetcore signalr实例

本文不对小程序与signalr做任何介绍,默认读者已经掌握

aspnetcore Signalr文档
小程序文档

写在之前

SignalR没有提供小程序使用的客户端js,所以本人参考signlar.js写了小程序版signalr-client.js 代码开源,地址 https://github.com/liangshiw/SignalRMiniProgram-Client

先上效果图

640?wx_fmt=jpeg

640?wx_fmt=png

开始编码

首先需要创建一个aspnetcore的mvc项目,创建完成后我们需要安装signalr的包

 Install-Package Microsoft.AspNetCore.SignalR

现在就可以创建hub集线器了,首先定义一个类来描述已在线的用户,它需要头像和姓名

640?wx_fmt=png

接下来我们在连接创建时,把当前用户做为在线用户添加到字典中,向该用户发送加入成功的系统消息。并且同时向其他的用户发送系统消息

640?wx_fmt=png

同样在用户断开连接时做离线处理

640?wx_fmt=png

下面就只有一个简单的发送消息方法了,首先查看当前用户是否在线并做相应处理,如果在线就把当前用户的消息和头像姓名一起发送给组中的其他客户端

640?wx_fmt=png

在小程序中,我们需要在页面加载事件中创建与signalr的连接,并且注册system系统消息与receive用户消息两个方法以接收服务端发来的消息

640?wx_fmt=png

同样在页面销毁时应断开与signalr服务器的连接

onUnload: function () {  
    this.hubConnect.close({ reason: "退出" }) }

发送方法也非常简单,只需要调用sendMessage方法并把用户输入的消息传入就大功告成了,其它就是页面上的处理了

this.hubConnect.send("sendMessage",message);

完整的代码请去github https://github.com/liangshiw/SignalRMiniProgram-Client/tree/master/sample
需要注意的是在打开小程序代码时,请修改project.config.json文件中的appid,如果项目不错的话还请大家加个星,顺便再follow一下本人

相关文章:

  • Asp.Net Core SignalR 与微信小程序交互笔记

  • 推荐一堂关于《微信公众号+小程序快速开发》的课,价格优惠88

原文地址:https://www.cnblogs.com/LiangSW/p/9415246.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二次重建基本完成辣!

二次重建基本完成辣! 实现了一些,之前觉得很有意思的设想,参考了许多dalao的blog解决了手机端突然出现的无法点击链接的问题但是在由于css实现过程中,本人姿势水平不够,Pad和手机无法正常显示。。。适配调整工程过于庞…

纪中C组模拟赛总结(2019.7.12)

成绩: rankrankrank是有算其他dalaodalaodalao的 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4444tjhtjhtjh127.7127.7127.72020200001001001007.77.77.7555lthlthlth120120120202020000100100100000888lyflyflyf107.7107.7107.70000001001001…

牛客网【每日一题】3月26日 合并回文子串

题号:NC13230 名称:合并回文子串 来源:美团2017年CodeM大赛-初赛A轮 题目链接 时间限制:C/C 2秒,其他语言4秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 输入两个字…

jzoj5363-[NOIP2017提高A组模拟9.14]生命之树【启发式合并,Trie】

正题 题目大意 nnn个点的一棵树&#xff0c;每个节点有一个值valvalval和一个字符串SSS。对于每个点求∑x∈decp∑y∈decp(x<y)(valxxorvaly)∗∣LCP(Sx,Sy)∣\sum_{x\in dec_p}\sum_{y\in dec_p(x<y)}(val_x\ xor\ val_y)*|LCP(S_x,S_y)|x∈decp​∑​y∈decp​(x<y)…

技术绩效考量:你们可能都做错了

欢迎来到通向卓越之路&#xff01;我们或许都陷入了这样的困境&#xff0c;我们努力成为卓越的企业&#xff0c;我们进行绩效考量&#xff0c;并在此过程中找到正确的OKR、KPI或ABC。但这可能是一件很困难的事情&#xff0c;特别是当我们所在的组织非常复杂并从技术幽灵&#x…

UVALive 8518 - Sum of xor sum

UVALive 8518 - Sum of xor sum 做法&#xff1a;线段树维护&#xff1a;答案&#xff0c;边界在左端点的区间异或为1的个数&#xff0c;边界在右端点异或为1的个数&#xff0c;1的个数&#xff0c;区间长度&#xff0c;这样已经自洽了。&#xff08;每次讲线段树&#xff0c;都…

【结论】取石子游戏(jzoj 1211)

取石子游戏 jzoj 1211 题目大意&#xff1a; 有n个石子&#xff0c;每次可取1~k个石子&#xff08;必须取&#xff09;&#xff0c;问先取者是否有必胜方法 输入样例 2 2 3 3 2输出样例 No Yes数据范围 20%的数据 K≤10 N≤30,000,000 50%的数据 K≤100 N≤2^31-1 100%的…

CodeForces 282E Sausage Maximization(trie+xor)

传送题目 看了半个多小时的题解才搞明白&#xff0c;一下题解为自己的心得 参考博客&#xff08;这两个讲的很详细&#xff09;&#xff1a; 参考一 参考二 题意&#xff1a;有一个长度有n的整数序列&#xff0c;你要在这个序列中选择一个前缀和后缀&#xff0c;前后缀不想交&a…

Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验

Net Core平台灵活简单的日志记录框架NLog初体验前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblogs.com/yilezhu/p/9339017.html]" 有人说比较重量&#xff0c;生产环境部署也比较麻烦。因此就有了今天的这篇文章。如果你…

jzoj5365-[GDOI2018模拟9.14]通信【线段树合并】

正题 题目大意 nnn个节点的一棵树&#xff0c;随机选择一个区间&#xff0c;求这个区间的点所构成的虚树的期望权值和。 解题思路 考虑每一条边的贡献&#xff0c;定义一边的点为黑点&#xff0c;一边的为白点&#xff0c;显然包含黑白的区间都会产生贡献。考虑减去没有贡献的…

HDU5129 - Yong Zheng's Death

HDU5129 - Yong Zhengs Death 做法&#xff1a;看题之后&#xff0c;就想到要建好trie树&#xff0c;然后输出非根节点数的平方&#xff0c;这样显然错了。因为会出现重算的情况&#xff0c;即&#xff1a;你有 ab,cde ,abc,de, abcd, e,这几个串那么 [ab, cde] [abc,de] [abcd…

牛客网【每日一题】3月27日 数学考试

题号 NC15553 名称 数学考试 来源 2018年长沙理工大学第十三届程序设计竞赛 链接&#xff1a;https://ac.nowcoder.com/acm/problem/15553 来源&#xff1a;牛客网 试题传送门 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;…

【SPFA】重建道路(jzoj 1212)

重建道路 jzoj 1212 题目大意&#xff1a; 有一个图&#xff0c;其中的一些路坏了&#xff0c;为了从a走到b&#xff0c;问最少修复多长的路 输入样例 3 2 1 2 1 2 3 2 1 1 2 1 3输出样例 1数据范围 2⩽N⩽1002\leqslant N\leqslant 1002⩽N⩽100 N−1⩽D⩽M⩽N∗(N−1)/…

ASP.NET CORE 根据环境变量支持多个 appsettings.json

0.背景在开发项目的过程当中&#xff0c;生产环境与调试环境的配置肯定是不一样的。拿个最简单的例子来说&#xff0c;比如连接字符串这种东西&#xff0c;调试环境肯定是不能连接生产数据库的。在之前的话&#xff0c;这种情况只能说是你 COPY 两个同名的配置文件来进行处理。…

GYM101933I - Intergalactic Bidding

GYM101933I - Intergalactic Bidding 题解&#xff1a;不考虑首先显然是个背包&#xff0c;一开始直接用set模拟&#xff0c;然后map存方案&#xff0c;这样会mle。发现物品的体积有的特殊性 only one participant was allowed to make a bid at a time, each participant was …

【结论】【dfs】费解的开关(joyoi-tyvj 1266)

费解的开关 joyoi-tyvj 1266 题目大意&#xff1a; 有5*5的一个图&#xff0c;每个点的数值是1或0&#xff0c;如果将一个点的数值取反&#xff0c;那这个点上下左右的点都会取反&#xff0c;现在问你将所有点都变为1最少要多少步&#xff0c;如果步数大于6或无法全变成1的话…

P3586-[POI2015]LOG【线段树】

正题 题目链接:https://www.luogu.com.cn/problem/P3586 题目大意 nnn个数&#xff0c;有操作 修改一个数假如每次选出ccc个正数让它们减去111&#xff0c;求能否进行操作sss次。 解题思路 如果有cntcntcnt个数大于sss那么有解当且仅当满足cnt≥ccnt\geq ccnt≥c或者小于sss…

小G的项链(Manacher)

我看网上也没有写这个题的&#xff0c;顺便写一下&#xff08;可能是大佬都觉得太简单了 &#xff09; 链接&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述…

基于Win10极简SonarQube C#代码质量分析

博客有些好些时间未更新了&#xff0c;这几个月的时间里&#xff0c;离开了实习的公司、大学毕了业、来了新公司、转了户口&#xff0c;有点忙&#xff0c;最近总算稍微闲下来了&#xff0c;打算重新拾起博客&#xff0c;坚持写下去。言归正转&#xff0c;什么是SonarQube ?So…

2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲

2018年牛客多校算法寒假训练营练习比赛&#xff08;第一场&#xff09;C. 六子冲 题目链接 做法&#xff1a;模拟即可 #include <bits/stdc.h> #define P pair<int,int> #define fir first #define sec second #define rep(i,a,b) for(int ia;i<b;i) using name…