# Chinese

#### 快速连接LSports - RabbitMQ <a href="#lsports-rabbitmq" id="lsports-rabbitmq"></a>

那么您已经开始通过RMQ来应用LSports的服务了，很好的选择！\
让我们通过几个简单的步骤让您的连接运行起来.

本指南旨在让您更好地了解LSports支持团队如何及时解决问题，最大程度地减少您的工作量.

**分步说明**\
• 首先，我们强烈建议您使用我们的软件开发工具包（SDK）（目前提供C＃语言或PHP版本）进行快速执行，您可以从以下地点下载使用您的首选编程语言写成的文件：:\
[SDK - C#](https://lsportseu-my.sharepoint.com/personal/stas_m_lsports_eu/_layouts/15/guestaccess.aspx?docid=0bd80e807559e4543b520bd0fe7f25b46\&authkey=AerSWTRZ2TMn2HyT3r9NEgE\&e=x0V82l)

以下示例引用了这些认证信息:\
**用户名: MyEmail**\
**密码: Passw0rd1234**\
**套餐: 102030**\
（您应该使用LSports发送给您的认证信息）

`注意：以下所有示例都是用C＃语言编写的。`\
如果您选择执行自己的代码，要在[此处](https://www.rabbitmq.com/devtools.html)获取RMQ库.

请注意, 目前使用的是 RabbitMQ 3.6.5.0版本.

1. 首先，请确保您的软件包通过发送如下所示的应用程序编程接口（API）调用来启动，：

**InPlay 软件包:** <https://inplay.lsports.eu/api/Package/EnablePackage?username=MyEmail&password=Passw0rd1234&packageid=102030>

**Prematch 软件包:** <https://prematch.lsports.eu/OddService/EnablePackage?username=MyEmail&password=Passw0rd1234&guid=guid-provided-by-LSports>

**回复：**\
XML Schema:

```
<xs:schema>
  <xs:element name="Message">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Header">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:short" name="HttpStatusCode"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Body">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:string" name="Message"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
```

JSON Schema:

```
{
  "type": "object",
  "properties": {
    "Header": {
      "type": "object",
      "properties": {
        "HttpStatusCode": {
          "type": "integer"
        }
      },
      "required": [
        "HttpStatusCode"
      ]
    },
    "Body": {
      "type": "object",
      "properties": {
        "Message": {
          "type": "string"
        }
      },
      "required": [
        "Message"
      ]
    }
  },
  "required": [
    "Header",
    "Body"
  ]
}
```

如果软件包已经启用，则消息中应该包含 "Value was already set" （值已设置）.\
出现任何其他状态或错误消息，请重新检查您的认证信息或与我们联系。

2. 创建一个如下所示的连接工厂：

```
ConnectionFactory connectionFactory = new ConnectionFactory
{
    HostName = "Described below",
    Port = 5672,
    UserName = "MyEmail",
    Password = "Passw0rd1234",
    AutomaticRecoveryEnabled = true,
    VirtualHost = "Customers", //Default value
    RequestedHeartbeat = 580,
    NetworkRecoveryInterval = TimeSpan.FromSeconds(1)
};
```

**RMQ主机名称:**\
InPlay: **inplay-rmq.lsports.eu**\
PreMatch: **prematch-rmq.lsports.eu**

3. 创建一个如下所示的连接：

```
IConnection connection = _connectionFactory.CreateConnection();
```

4. 创建一个如下所示的模型:

```
IModel model = connection.CreateModel();
```

5. 配置服务质量:

```
model.BasicQos(prefetchSize: 0, prefetchCount: 1000, global: false);
```

6. 使用信息:

```
EventingBasicConsumer consumer = new EventingBasicConsumer(model);
consumer.Received += (sender, eventArgs) =>
{
    // Deserialize message
    // Call method to handle deserialized message
};
```

7. 开始消息使用:\
   （确保按照描述使用下划线（'\_'）键入您的软件包身份识别ID） 例如，如果软件包ID是 “102030”

```
model.BasicConsume(queue: '_102030_', noAck: true, consumer: consumer)
```

* 在这里，您应该能够应用您的RMQ连接并开始接收到[心率](https://app.stoplight.io/wk/9H6gSLYuaKRcYRDpP/8BSdjzonD32LCi6gp/B5TEAsYcAKNd485DH/design/text/6LXXkFwvCBBLaKeBR)消息.

**完整的快照请求**\
由于通过RMQ发送给您的更新只是增量，在开始使用来自LSports的消息之前，您应该请求应接收数据的快照。\
您可以通过调用以下API来完成此操作:

* [Inplay Snapshot](https://app.stoplight.io/wk/9H6gSLYuaKRcYRDpP/8BSdjzonD32LCi6gp/B5TEAsYcAKNd485DH/design/text/q9SscYcC8DoTRT9cP) - 为当前正在进行的所有活动提供数据.
* [Prematch Get events](https://app.stoplight.io/wk/9H6gSLYuaKRcYRDpP/8BSdjzonD32LCi6gp/B5TEAsYcAKNd485DH/design/text/BadvuEhnHtR5YwaAC) - 为请求的活动提供数据.

#### 可能的错误类型 <a href="#undefined" id="undefined"></a>

**注意：如果队列中达到10000条未读/未应答消息，消息将被自动清除，而您的软件包将被禁用.**

大多数连接尝试失败是由于认证信息不正确或软件包未激活.\
以下是最常见的错误和原因：

**"Connection failed"** - “连接失败” - 请检查连接的详细信息，包括连接工厂、RMQ主机、虚拟主机是否正确输入.\
\&#xNAN;**"Access refused"**-“拒绝访问” - 请检查您的软件包是否已启用，以及登录认证信息和软件包身份识别ID是否正确输入

**要获得我们的数据结构的深入解释，您可以继续阅读我们的文档.**\
**现在，您需要开始根据自己的具体需求订购我们的运动数据.**
