php开发在线客服系统_app内在线客服
大家好,又见面了,我是你们的朋友全栈君。
在本节中,我们将简要讨论通过PHP在线客服系统源码传输数据的数据传输方法。我们可以发送普通消息或基于时间表的消息。我们将逐一介绍这两种基本类型的消息传递。 完整源码:zxkfym.top Azure 服务总线: Microsoft Azure 服务总线是一种完全托管的云上企业集成消息传递服务,用于将云中运行的任何应用程序、设备和服务连接到任何其他应用程序或服务。该平台充当云上和任何设备上的应用程序的消息传递骨干。
它是如何工作的 ?使用消息在不同的应用程序和服务之间传输数据。消息为二进制格式,可以包含 JSON、XML 或仅包含文本。这些消息被放置到应用程序所连接的服务总线上,以便所有或特定用户连接到这个应用程序上,通过套接字服务连接打开可以接收通过服务总线传输的数据。 消息类型:通过 Azure 服务总线传输的数据消息可以分为两种主要类型,即数据需要按特定计划发送还是需要立即发送。在这里,我们将详细讨论这两个消息传递过程。其中每一个都有自己特定的方法来调用消息传递过程。 ●立即发送消息: send() 函数调用将消息发送到当前发送方连接到的 Azure 服务总线。此方法进行非异步调用。您还有一个异步版本来提高性能。
send( IMessage message )
示例代码:
public static async sendMessage(content: Message): Promise<string> {
const serviceConnection = AzureServiceBus.createConnection();
const client = serviceConnection.createQueueClient(""
+ process.env.AZURE_SERVICEBUS_QUEUE);
const sender = client.createSender();
let response = "";
try {
const scheduledEnqueueTimeUtc
= moment().utc().add(1, "m").toDate();
await sender.send( {body: JSON.stringify(content),
label: "MyTopic"});
await client.close();
} catch (error) {
} finally {
await serviceConnection.close();
}
return resp;
}
●计划消息:此方法将基于计时器的消息发送到调用发件人所连接的 Azure 服务总线。它将消息排入总线以预定时间消息,将消息传递到接收端。这是当前的异步过程,以获得更好的性能。
原型:
scheduleMessage( IMessage message, Instant scheduledEnqueueTimeUtc )
示例代码:
public static async sendScheduleMessage(
content: Message): Promise<string> {
const serviceConnection =
AzureServiceBus.createConnection();
const client = serviceConnection.createQueueClient(
"" + process.env.AZURE_SERVICEBUS_QUEUE);
const sender = client.createSender();
let response = "";
try {
const scheduledEnqueueTimeUtc
= moment().utc().add(1, "m").toDate();
const sequenceId = await sender.scheduleMessage(
scheduledEnqueueTimeUtc,
{body: JSON.stringify(content),
label: "MyTopic"});
response = sequenceId.toString();
await client.close();
} catch (error) {
} finally {
await serviceConnection.close();
}
return resp;
}
这将引发一个问题,即 sequenceId 值将变为“未定义”。Azure 门户提供了一个修复,即需要对消息进行编码,然后将其放入服务总线中,以便获取正确的 sequenceId。 错误修复:
import { DefaultDataTransformer }
from "@azure/amqp-common";
...
...
const dt = new DefaultDataTransformer();
const sequenceId = await sender.scheduleMessage(
scheduledEnqueueTimeUtc,
{body: dt.encode(JSON.stringify(content)),
label: "MyTopic"});
response = sequenceId.toString();
现在您将收到正确的 sequenceId,如果将来需要,您可以使用以下代码段来取消消息。 CancelMessage:此方法使用 scheduleMessage 调用删除了早期放置在服务总线中的消息。我们需要将调用期间返回的 sequenceNumber 作为此方法调用的唯一参数发送。如果消息已经传递,那么我们会收到一个错误 MessageNotFound ,需要在 catch 中处理。 原型:
cancelScheduledMessage( long sequenceNumber )
因此,我们已经介绍了如何使用上述两种方法进行数据通信,并通过调度或非调度方式放置数据请求。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193185.html原文链接:https://javaforall.cn
相关文章
- ChatGPT国产平替出现了:APP商店就能下载,还可给AI加人设,背后公司刚成立3个月
- PHP DFA算法实现敏感词过滤包 php-dfa-sensitive
- 如何在自己APP中接入在线客服系统,App接入第三方在线客服系统方法
- MySQL在PHP中的配置须知(php中的mysql配置)
- Linux系统下如何快速安装PHP(linux命令安装php)
- 快速安装配置PHP在Linux系统上(php安装配置linux)
- Oracle与PHP:实现服务器端程序互通(oracle和php)
- 如何解决PHP连接MySQL时找不到该数据库的问题(php找不到mysql)
- 深入探索:Linux 系统下 PHP 的适用与优势(Linux中php)
- PHP实现Object Oriented Stye封装MySQL类(php封装mysql类)
- PHP Redis实时监控系统的应用(php redis 监控)
- PHP可以连接MSSQL数据库吗?(php能连接mssql吗)
- PHP连接MSSQL:一个新的开发方式(php 联接mssql)
- PHP与MSSQL架构构建的网站系统实践(php mssql 架构)
- 掌握App接入MySQL的技术(app如何接入mysql)
- 混合开发助力企业信息化C语言PHP和MySQL联动提升系统性能(c php mysql)
- 基于Redis和PHP技术的投票系统优化(投票 redis php)
- 用PHP实现Redis缓存一个实例(redis缓存实例php)
- 创建数据库php代码用PHP写出自己的BLOG系统
- php内核解析:PHP中的哈希表