|
|
/* senparc.websocket.js - 20191001 - v2.0 */
|
|
|
/* 支持 .NET Core 3.0+ SignalR。 */
|
|
|
define('js/senparc.websocket.2.0', function () {
|
|
|
var senparcWebSocketConnection;
|
|
|
|
|
|
function buildConnectionAndStart(hubUrl, signalR, onStart) {
|
|
|
senparcWebSocketConnection = new signalR.HubConnectionBuilder()
|
|
|
.withUrl(hubUrl)
|
|
|
//.withAutomaticReconnect([0, 2000, 5000, 10000, 30000, 45000, 60000])
|
|
|
.build();
|
|
|
senparcWebSocketConnection.start(onStart()).then().catch(function (err) {
|
|
|
return console.error(err.toString());
|
|
|
});
|
|
|
return senparcWebSocketConnection;
|
|
|
}
|
|
|
|
|
|
function sendMessage(text, sessionId, formId) {
|
|
|
//如果使用 Senparc.WebSocket,必须严格按照以下 submitData 数据字段发送(参数只能多不能少)
|
|
|
var submitData = JSON.stringify({
|
|
|
Message: text,//必填
|
|
|
SessionId: sessionId,//选填,不需要可输入''
|
|
|
FormId: formId//选填formId用于发送模板消息,不需要可输入''
|
|
|
});
|
|
|
|
|
|
//ReceiveMessage 为特殊约定的方法入口,请勿修改,如果使用其他名称,则会对应到 SenparcHub 下的其他自定义方法
|
|
|
senparcWebSocketConnection.invoke("ReceiveMessage", submitData).catch(function (err) {
|
|
|
return console.error(err.toString());
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function onReceiveMessage(receive) {
|
|
|
senparcWebSocketConnection.on("ReceiveMessage", function (res) {
|
|
|
receive(res);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
//module.exports = {
|
|
|
// buildConnectionAndStart: buildConnectionAndStart,
|
|
|
// sendMessage: sendMessage,
|
|
|
// onReceiveMessage: onReceiveMessage
|
|
|
//}
|
|
|
|
|
|
return {
|
|
|
buildConnectionAndStart: buildConnectionAndStart,
|
|
|
sendMessage: sendMessage,
|
|
|
onReceiveMessage: onReceiveMessage
|
|
|
};
|
|
|
});
|
|
|
|
|
|
|