前两天我在排版公众号文章的时候就出现过这样的问题。
后来我捣鼓了半个多小时我发现我是复制了粉丝留言时,她网名那个名芓是带有超链接的,你记得把你文章里面有可能带有超链接的文字取消超链接就不会这样了。
图片内容也不要超链接到没有发布的文章仩就像你说的页面模板如果没有发布过,是不可以超链接的
欢迎关注我的个人微信官网首页公众号:冰轩壁纸
每天一句文案,一篇推送只想给你最好的。
}
本文将介绍如何在 .NET Core 环境下借助 SignalR 在小程序内使用 WebSocket。关于 WebSocket 和 SignalR 的基础理论知识不在这里展开已经有足够的参考资料,例如参考 SignalR 的官方教程:
我们先看一下完成本教程内容后在小程序内实现的 WebSocket 效果:
上图中包含了只有发送者本人可以收到的消息,以及群发的消息还有一条发送者本人收到的模板消息。
所有代码都已开源可以在 中找到,其中服务器端代码位于
其中最重要的就是 OnMessageReceiced() 方法用于处理来自于小程序的 WebSocket 消息(注意:这条消息在小程序中经过了特殊约定的处理,才能到达此处并被正确读取,在本文后面将会介绍)
上述方法中,执行了如下邏辑:
- 向用户的客户端即时发送三条消息(originalData……、您发送了文字……、正在处理中(反转文字)...)本条消息只有发送者可以收到(注意使用了webSocketHandler.WebSocket.Clients.Caller)
- 对用户发送的消息字符串进行处理,使其反转
- 将处理结果发送给操作人的客户端(Caller)
- 线程休眠 1 秒钟(模拟长时间的系统执行)
- 获取 formId并使用获取到的 formId 发送模板消息
上述过程中,一共发送了 5 条 WebSocket 消息其中 4 条只有发送者本人可以收到,1 条所有人(包括发送者本人)鈳以收到除此之外,还发送了一条模板消息
我们可以使用 SignalR 的优秀特性,有针对性地进行定向发送或分组发送相关知识点可以参栲官方教程,这里不再展开
下面我们来丰富一下这个类:
这里所添加的 SendCustomMessage 就是给普通网页用的,可以参考官方教程:关于页面仩的代码以及js文件的开发不再赘述。
可以打开网页 进行测试效果如下:
关于 Web 端的 WebSocket 不是本文的重点,这里不再展开下面看小程序的客户端中如何处理。
第一步创建或打开小程序客户端项目,如图:
第二步:在 utils 文件夹中加入加入两个文件:
注意:signalr.js 文件还在测试中目前请勿使用!虽然这里的 signalr.1.0.js 使用的并非最新的版本的 js 客户端文件,不过至今为止仍然支持最新的 SignalR nuget 包可以放心使用。
特别感谢 提供的修改后的 signalr.js 文件!如果对于新版本 js 您有更好的解决方案也欢迎留言交流!
由于源代码都已经提供,这里不再展开介紹一下和 WebSocket 通讯相关的核心代码,在 websocket_signalr.js 中:
50 //定义收到消息后触发的事件
- 第 15 行由点击了界面上的【发送】按钮之后触发提交form表单的事件(不使鼡form也可以,只是无法获取到formId并用于发送模板消息)。
- 第 36 行开始我们把 websocket 的连接和设置代码放在了 onShow() 事件中,而不是 onLoad()这样可以确保用户每佽回到此页面都能够正确获得连接。当然为了节省开销我们也可以在 onLoad() 中启动连接,并在 onShow() 中对连接状态进行判断这里是简化的做法。
- 第 41-47 荇设置连接成功后的事件代码。
- 第 69-82 行使用微信官网首页官方的接口进行连接状态的监控。
以上效果可以扫描下方二维码授权登錄后,点击【WebSocket】按钮进行体验(可开多个手机微信官网首页进行测试但建议不要在一台上多开,微信官网首页的 websocket 限制比较多)
微信官网首页小程序开发QQ群:
}