# mpnats

> nats client for baidu/weixin/alipay mini program

Latest version **1.0.1** (published 2018-12-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install mpnats
pnpm add mpnats
yarn add mpnats
bun add mpnats
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2018-12-10 |
| First published | 2018-12-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 108.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | klouskingsley |
| Maintainers | klouskingsley |
| Keywords | nats, ws, websocket, mp, wechat, baidu, alipay |

## Links

- npm: https://www.npmjs.com/package/mpnats
- Repository: https://github.com/klouskingsley/mpnats
- Homepage: https://github.com/klouskingsley/mpnats#readme
- Issues: https://github.com/klouskingsley/mpnats/issues
- npm.io page: https://npm.io/package/mpnats

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2018-12-10
- 1.0.0 — 2018-12-10

## README

# 微信/支付宝/百度小程序的[nats](https://nats.io)客户端

## 安装

```
$ npm install mpnats -S
```

## 使用

- 微信小程序

```js
const Nats = require('mpnats/wx')
const nats = new Nats()
nats.connect({url: 'wss://younatsserver.io'})
    .then(() => {
        return nats.subscribe('topic1', function (data) {
            console.log('topic1 data received: ', data)
        })
    })
```

- 支付宝小程序

```js
const Nats = require('mpnats/alipay')
const nats = new Nats()
nats.connect({url: 'wss://younatsserver.io'})
    .then(() => {
        return nats.subscribe('topic1', function (data) {
            console.log('topic1 data received: ', data)
        })
    })
```

- 百度小程序

```js
const Nats = require('mpnats/baidu')
const nats = new Nats()
nats.connect({url: 'wss://younatsserver.io'})
    .then(() => {
        return nats.subscribe('topic1', function (data) {
            console.log('topic1 data received: ', data)
        })
    })
```

## Api

#### 订阅

```
nats.subscribe(topic: string, callback: Function): Promise<sid: number>

返回Promise, promise resolve 表示订阅消息发送成功, promise reject 表示订阅消息发送失败
promise resolve会返回sid，可以用这个sid来取消订阅
```

例子

```js
const Nats = require('mpnats/wx')
const nats = new Nats()
(async function () {
    await nats.connect({url: 'wss://yournatserver.io'})
    const sid = await nats.subscribe('topic', function (data) {
        console.log('topic1 data received: ', data)
    })
})()
```

#### 取消订阅

```
nats.unsubscribe(sid: number): Promise<void>

返回Promise, promise resolve 表示取消订阅消息发送成功, promise reject 表示取消订阅消息发送失败
```

例子

```js
const Nats = require('mpnats/wx')
const nats = new Nats()
(async function () {
    await nats.connect({url: 'wss://yournatserver.io'})
    const sid = await nats.subscribe('topic', function (data) {
        console.log('topic1 data received: ', data)
    })
    await nats.unsubscribe(sid)
})()
```

#### 发送消息

```
nats.publish(topic: string, message: string)

返回Promise, promise resolve 表示发送消息成功, promise reject 表示发送消息失败
```
例子

```js
const Nats = require('mpnats/wx')
const nats = new Nats()
(async function () {
    await nats.connect({url: 'wss://yournatserver.io'})
    const sid = await nats.subscribe('topic', function (data) {
        console.log('topic1 data received: ', data)
    })
    await nats.publish('topic', 'hello topic')
})()
```

#### 关闭连接

```
nats.close()

返回Promise, promise resolve表示关闭成功, promise reject 表示关闭失败
```

例子

```js
const Nats = require('mpnats/wx')
const nats = new Nats()
(async function () {
    await nats.connect({url: 'wss://yournatserver.io'})
    await nats.close()
})()
```

#### 监听连接关闭

```
nats.on('close', callback: Function) // 监听关闭
nats.off('close', callback: Function) // 取消监听

```

例子


```js
const Nats = require('mpnats/wx')
const nats = new Nats()
nats.on('close', function () {
    console.log('nats连接由于某种原因关闭了')
})
nats.connect({url: 'wss://yournatserver.io'})
```

#### 监听连接出错

```
nats.on('error', callback: Function) // 监听出错
nats.off('error', callback: Function) // 取消监听
```

```js
const Nats = require('mpnats/wx')
const nats = new Nats()
nats.on('error', function () {
    console.log('nats连接由于某种原因出错了')
})
nats.connect({url: 'wss://yournatserver.io'})
```

---
_Source: https://npm.io/package/mpnats · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
