forked from JeffreySu/WechatVideoCourse
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
13 changed files
with
361 additions
and
1 deletion.
There are no files selected for viewing
101 changes: 101 additions & 0 deletions
101
课程Demo代码/25-32 小程序/SenparcClass/SenparcClass.Service/CustomWebSocketMessageHandler.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
using Senparc.WebSocket; | ||
using Senparc.Weixin; | ||
using Senparc.Weixin.MP.AdvancedAPIs.TemplateMessage; | ||
using Senparc.Weixin.WxOpen.Containers; | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Text; | ||
using System.Threading.Tasks; | ||
|
||
namespace SenparcClass.Service | ||
{ | ||
/// <summary> | ||
/// 自定义 WebSocket 处理类 | ||
/// </summary> | ||
public class CustomWebSocketMessageHandler : WebSocketMessageHandler | ||
{ | ||
public override Task OnConnecting(WebSocketHelper webSocketHandler) | ||
{ | ||
//TODO:处理连接时的逻辑 | ||
return base.OnConnecting(webSocketHandler); | ||
} | ||
|
||
public override Task OnDisConnected(WebSocketHelper webSocketHandler) | ||
{ | ||
//TODO:处理断开连接时的逻辑 | ||
return base.OnDisConnected(webSocketHandler); | ||
} | ||
|
||
public override async Task OnMessageReceiced(WebSocketHelper webSocketHandler, ReceivedMessage receivedMessage, string originalData) | ||
{ | ||
if (receivedMessage == null || string.IsNullOrEmpty(receivedMessage.Message)) | ||
{ | ||
return; | ||
} | ||
|
||
var message = receivedMessage.Message; | ||
|
||
await webSocketHandler.SendMessage("originalData:" + originalData); | ||
await webSocketHandler.SendMessage("您发送了文字:" + message); | ||
await webSocketHandler.SendMessage("正在处理中..."); | ||
|
||
await Task.Delay(1000); | ||
|
||
//处理文字 | ||
var result = string.Concat(message.Reverse()); | ||
await webSocketHandler.SendMessage(result); | ||
|
||
#if NET45 | ||
var appId = WebConfigurationManager.AppSettings["WxOpenAppId"];//与微信小程序账号后台的AppId设置保持一致,区分大小写。 | ||
#else | ||
var appId = "WxOpenAppId";//与微信小程序账号后台的AppId设置保持一致,区分大小写。 | ||
#endif | ||
|
||
|
||
try | ||
{ | ||
//发送模板消息 | ||
var formId = receivedMessage.FormId;//发送模板消息使用,需要在wxml中设置<form report-submit="true"> | ||
|
||
var sessionBag = SessionContainer.GetSession(receivedMessage.SessionId); | ||
|
||
//临时演示使用固定openId | ||
var openId = sessionBag != null ? sessionBag.OpenId : "onh7q0DGM1dctSDbdByIHvX4imxA";// "用户未正确登陆"; | ||
|
||
await webSocketHandler.SendMessage("OpenId:" + openId); | ||
//await webSocketHandler.SendMessage("FormId:" + formId); | ||
|
||
if (sessionBag == null) | ||
{ | ||
openId = "onh7q0DGM1dctSDbdByIHvX4imxA";//临时测试 | ||
} | ||
|
||
//var data = new WxOpenTemplateMessage_PaySuccessNotice( | ||
// "在线购买", DateTime.Now, "图书众筹", "1234567890", | ||
// 100, "400-9939-858", "http://sdk.senparc.weixin.com"); | ||
|
||
var data = new | ||
{ | ||
keyword1 = new TemplateDataItem("来自小程序WebSocket的模板消息"), | ||
keyword2 = new TemplateDataItem(DateTime.Now.ToString()), | ||
keyword3 = new TemplateDataItem("Name"), | ||
keyword4 = new TemplateDataItem("Number"), | ||
keyword5 = new TemplateDataItem(100.ToString("C")), | ||
keyword6 = new TemplateDataItem("400-031-8816"), | ||
}; | ||
|
||
var tmResult = Senparc.Weixin.WxOpen.AdvancedAPIs.Template.TemplateApi.SendTemplateMessage(appId, openId, "Ap1S3tRvsB8BXsWkiILLz93nhe7S8IgAipZDfygy9Bg", data, receivedMessage.FormId, "pages/websocket/websocket", "websocket", | ||
null); | ||
} | ||
catch (Exception ex) | ||
{ | ||
var msg = ex.Message + "\r\n\r\n" + originalData + "\r\n\r\nAPPID:" + appId; | ||
|
||
await webSocketHandler.SendMessage(msg); //VS2017以下如果编译不通过,可以注释掉这一行 | ||
|
||
WeixinTrace.SendCustomLog("WebSocket OnMessageReceiced()过程出错", msg); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 2 additions & 0 deletions
2
课程Demo代码/25-32 小程序/SenparcClass/SenparcClass.Service/packages.config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<packages> | ||
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net45" /> | ||
<package id="Senparc.WebSocket" version="0.5.5" targetFramework="net45" /> | ||
<package id="Senparc.Weixin" version="4.20.2" targetFramework="net45" /> | ||
<package id="Senparc.Weixin.MP" version="14.10.3" targetFramework="net45" /> | ||
<package id="Senparc.Weixin.WxOpen" version="1.9.1" targetFramework="net45" /> | ||
<package id="System.Net.Http" version="4.3.1" targetFramework="net45" /> | ||
</packages> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
84 changes: 84 additions & 0 deletions
84
课程Demo代码/25-32 小程序/SenparcWeChatCourseWxOpen/pages/websocket/websocket.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
var app = getApp() | ||
var socketOpen = false;//WebSocket 打开状态 | ||
Page({ | ||
data: { | ||
messageTip: '', | ||
messageTextArr: [], | ||
messageContent: 'TEST', | ||
userinfo: {} | ||
}, | ||
//sendMessage | ||
formSubmit: function (e) { | ||
var that = this; | ||
console.log('formSubmit', e); | ||
var msg = e.detail.value.messageContent;//获得输入文字 | ||
console.log('send message:' + msg); | ||
if (socketOpen) { | ||
|
||
//如果使用Senparc.WebSocket,必须严格按照以下data数据字段发送(只能多不能少) | ||
var submitData = JSON.stringify({ | ||
Message: msg,//必填 | ||
SessionId: wx.getStorageSync("sessionId"),//选填,不需要可输入'' | ||
FormId: e.detail.formId//选填formId用于发送模板消息,不需要可输入'' | ||
}); | ||
|
||
wx.sendSocketMessage({ | ||
data: submitData | ||
}); | ||
that.setData({ | ||
messageContent: '' | ||
}) | ||
} else { | ||
that.setData({ | ||
messageTip: 'WebSocket 链接失败,请重新连接!' | ||
}) | ||
} | ||
}, | ||
onLoad: function () { | ||
console.log('onLoad') | ||
var that = this | ||
|
||
//连接 Websocket | ||
wx.connectSocket({ | ||
url: wx.getStorageSync('wssDomainName') + '/SenparcWebSocket', | ||
header: { | ||
'content-type': 'application/json' | ||
}, | ||
method: "GET" | ||
}); | ||
//WebSocket 连接成功 | ||
wx.onSocketOpen(function (res) { | ||
console.log('WebSocket 连接成功!') | ||
socketOpen = true; | ||
that.setData({ | ||
messageTip: 'WebSocket 连接成功!' | ||
}) | ||
}) | ||
//收到 WebSocket 推送消息 | ||
wx.onSocketMessage(function (res) { | ||
console.log('收到服务器内容:' + res.data) | ||
var jsonResult = JSON.parse(res.data); | ||
var currentIndex = that.data.messageTextArr.length + 1; | ||
var newArr = that.data.messageTextArr; | ||
newArr.unshift( | ||
{ | ||
index: currentIndex, | ||
content: jsonResult.content, | ||
time: jsonResult.time | ||
}); | ||
console.log(that); | ||
that.setData({ | ||
messageTextArr: newArr | ||
}); | ||
}) | ||
//WebSocket 已关闭 | ||
wx.onSocketClose(function (res) { | ||
console.log('WebSocket 已关闭!') | ||
socketOpen = false; | ||
}) | ||
//WebSocket 打开失败 | ||
wx.onSocketError(function (res) { | ||
console.log('WebSocket连接打开失败,请检查!') | ||
}) | ||
} | ||
}) |
1 change: 1 addition & 0 deletions
1
课程Demo代码/25-32 小程序/SenparcWeChatCourseWxOpen/pages/websocket/websocket.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{} |
Oops, something went wrong.