php开发在线客服系统_app内在线客服

php开发在线客服系统_app内在线客服  在本节中,我们将简要讨论通过PHP在线客服系统源码传输数据的数据传输方法。我们可以发送普通消息或基于时间表的消息。我们将逐一介绍这两种基本类型的消息传递。  完整源码:zxkfym.top  Azure服务总线:MicrosoftAzure服务总线是一种完全托管的云上企业集成消息传递服务,用于将云中运行的任何应用程序、设备和服务连接到任何其他应用程序或服务。该平台充当云上和任何设备上的应用程序的消息传递骨干。  它是如何工作的?使用消息在不同的应用程序和服务之间传输数据。消息为二进制格

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  在本节中,我们将简要讨论通过PHP在线客服系统源码传输数据的数据传输方法。我们可以发送普通消息或基于时间表的消息。我们将逐一介绍这两种基本类型的消息传递。
  完整源码:zxkfym.top
  Azure 服务总线: Microsoft Azure 服务总线是一种完全托管的云上企业集成消息传递服务,用于将云中运行的任何应用程序、设备和服务连接到任何其他应用程序或服务。该平台充当云上和任何设备上的应用程序的消息传递骨干。

php开发在线客服系统_app内在线客服

 
  它是如何工作的 ?使用消息在不同的应用程序和服务之间传输数据。消息为二进制格式,可以包含 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 服务总线。它将消息排入总线以预定时间消息,将消息传递到接收端。这是当前的异步过程,以获得更好的性能。

php开发在线客服系统_app内在线客服

  原型:


  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.net/193185.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于DNS解析的GSLB《CDN技术详解》

    基于DNS解析的GSLB《CDN技术详解》基于DNS解析的GSLB工作方式基于DNS解析的GSLB方案实际上就是把负载均衡设备部署在DNS系统中。在用户发出任何应用连接请求时,首先必须通过DNS系统来请求获得服务器的IP地址,基于DNS的GSLB正是在返回DNS解析结果的过程中进行智能决策,给用户返回一个最佳的服务器的IP地址。从用户的视角看,整个应用流程与没有GSLB参与时没有发生任何变化。DNS系统本身是具备简单负载分配能力的,这…

    2022年6月10日
    37
  • leetcode题目分类_最长前缀匹配例题

    leetcode题目分类_最长前缀匹配例题原题链接编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,”flow”,”flight”]输出:”fl”示例 2:输入:strs = [“dog”,”racecar”,”car”]输出:””解释:输入不存在公共前缀。 提示:0 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成题解分

    2022年8月8日
    8
  • PLSQL使用教程

    PLSQL使用教程plsql基本使用教程一、登录1、在这里配置好数据库服务,之后就可以登录了2、输入用户名和密码,并选择之前配置好的数据库服务。我这服务名取为localhost。(这个名字随意起。)二、创建表空间1、在SQL窗口中执行以下SQL代码。CREATETABLESPACEFJFEDWLOGGINGDATAFILE’C:\app\Administrator\oradata\orcl…

    2022年5月2日
    60
  • p6使用教程_p6slite使用说明书

    p6使用教程_p6slite使用说明书最近开发中用到spring-data-jpa+hibernate的持久层框架,在调试过程中,日志记录的hibernateSQL执行语句无法显示传入的参数,所以上github上搜索了一番,发现了p6spy这个框架,此框架能够无缝地拦截和记录数据库的执行语句,而不会对现有应用程序进行代码更改。下面介绍一下p6spy的简单配置和使用。源码https://github.com/p6s…

    2022年10月6日
    0
  • wireshark网络安全分析工具之万文多图详解(持续更新)[通俗易懂]

    wireshark网络安全分析工具之万文多图详解(持续更新)[通俗易懂]1.基本介绍2.下载与安装3.详细教程3.1软件界面介绍3.1.1菜单栏3.1.2工具栏3.1.3数据包列表区3.1.4数据包详细区3.1.5数据包字节区3.2Wireshark过滤器3.2.1捕获过滤器3.2.2显示过滤器3.3过滤规则3.3.1语法讲解3.3.2过滤实例4.实战案例

    2022年6月21日
    23
  • 基础数论略讲

    基础数论略讲

    2021年9月28日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号