📖 update readme
This commit is contained in:
@@ -1,10 +1,12 @@
|
|||||||
# 消息推送服务
|
# 消息推送服务
|
||||||
## 描述
|
## 描述
|
||||||
1. 利用微信公众号测试号或者微信企业号来给自己的微信推送消息。
|
1. 多种消息推送方式:
|
||||||
2. 也可推送邮件消息,在微信中开启 QQ 邮件提醒后,也可以达到同样效果。
|
+ 使用微信公众号测试号推送,
|
||||||
3. 支持 Markdown。
|
+ 使用微信企业号推送,
|
||||||
4. 可以使用 Heroku 的免费服务器,[详见此处](#在-Heroku-上的搭建步骤)。
|
+ 使用邮箱进行推送,
|
||||||
5. 无需手动配置数据库,这里使用的是 SQLite3 嵌入式数据库。
|
+ 使用专门的桌面客户端进行推送,消息直达你的电脑,需要额外安装一个非常小的客户端,[详见此处](./client/README.md)。
|
||||||
|
2. 支持 Markdown。
|
||||||
|
3. 支持部署在 Heroku 上,无需自己的服务器,[详见此处](#在-Heroku-上的搭建步骤)。
|
||||||
|
|
||||||
## 用途举例
|
## 用途举例
|
||||||
1. [整合进自己的博客系统,每当有人登录时发微信消息提醒](https://github.com/songquanpeng/blog/blob/486d63e96ef7906a6c767653a20ec2d3278e9a4a/routes/user.js#L27)。
|
1. [整合进自己的博客系统,每当有人登录时发微信消息提醒](https://github.com/songquanpeng/blog/blob/486d63e96ef7906a6c767653a20ec2d3278e9a4a/routes/user.js#L27)。
|
||||||
@@ -68,7 +70,7 @@
|
|||||||
|:--|:--|
|
|:--|:--|
|
||||||
|MODE|1(1 代表 Heroku 模式,该模式下应用从环境变量中读取必要信息)|
|
|MODE|1(1 代表 Heroku 模式,该模式下应用从环境变量中读取必要信息)|
|
||||||
|PREFIX|你的前缀,如 admin(前缀用于区分用户,出现在请求的 api 路径中)|
|
|PREFIX|你的前缀,如 admin(前缀用于区分用户,出现在请求的 api 路径中)|
|
||||||
|DEFAULT_METHOD|默认推送方式(test 代表微信测试号,corp 代表微信企业号,email 代表邮件推送)|
|
|DEFAULT_METHOD|默认推送方式(test 代表微信测试号,corp 代表微信企业号,email 代表邮件推送,client 代表客户端推送)|
|
||||||
|HREF|服务的 href,如 https://wechat-message.herokuapp.com/ ,注意后面要有 /|
|
|HREF|服务的 href,如 https://wechat-message.herokuapp.com/ ,注意后面要有 /|
|
||||||
|WECHAT_APP_ID|你的测试号的 APP ID|
|
|WECHAT_APP_ID|你的测试号的 APP ID|
|
||||||
|WECHAT_APP_SECRET|你的测试号的 APP Secret|
|
|WECHAT_APP_SECRET|你的测试号的 APP Secret|
|
||||||
@@ -92,7 +94,8 @@
|
|||||||
1. `type`:(可选)发送方式
|
1. `type`:(可选)发送方式
|
||||||
+ `test`:通过微信公众号测试号推送
|
+ `test`:通过微信公众号测试号推送
|
||||||
+ `email`:通过发送邮件的方式进行推送
|
+ `email`:通过发送邮件的方式进行推送
|
||||||
+ `corp`:通过微信企业号的应用号发送
|
+ `corp`:通过微信企业号的应用号推送
|
||||||
|
+ `client`:通过桌面客户端推送
|
||||||
2. `title`:(可选)消息的标题
|
2. `title`:(可选)消息的标题
|
||||||
3. `description`:(必填)消息的描述
|
3. `description`:(必填)消息的描述
|
||||||
4. `content`:(可选)消息内容,支持 Markdown
|
4. `content`:(可选)消息内容,支持 Markdown
|
||||||
@@ -107,5 +110,6 @@
|
|||||||
- [x] 支持在 Heroku 上部署
|
- [x] 支持在 Heroku 上部署
|
||||||
- [ ] 更加便于部署的 Go 语言的版本。
|
- [ ] 更加便于部署的 Go 语言的版本。
|
||||||
- [x] 适配企业微信应用。
|
- [x] 适配企业微信应用。
|
||||||
|
- [x] 客户端推送。
|
||||||
|
|
||||||
敬请期待。
|
敬请期待。
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# Message Pusher 桌面客户端
|
||||||
|
## 描述
|
||||||
|
该客户端用于支持 `client` 消息推送方式。
|
||||||
|
|
||||||
|
注意,为防止未授权的 WebSocket 连接,使用该消息推送方式你**必须**设置 ACCESS_TOKEN。
|
||||||
|
|
||||||
|
## 原理
|
||||||
|
客户端启动后与 message-pusher 服务器建立一个 WebSocket 连接,通过该连接接受要推送消息,并调用系统的消息通知接口进行消息通知。
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
推荐将其注册为开机启动的服务,二进制包请前往 [Release 页面](https://github.com/songquanpeng/message-pusher/releases)下载。
|
||||||
|
|
||||||
|
启动参数:`./client.exe -server your.domain.com:port -prefix admin -token private`
|
||||||
+3
-3
@@ -1,8 +1,9 @@
|
|||||||
|
const WebSocket = require('ws');
|
||||||
const { tokenStore } = require('./token');
|
const { tokenStore } = require('./token');
|
||||||
|
|
||||||
async function pushClientMessage(userPrefix, message) {
|
async function pushClientMessage(userPrefix, message) {
|
||||||
let user = tokenStore.get(userPrefix);
|
let user = tokenStore.get(userPrefix);
|
||||||
if (!user || !user.ws) {
|
if (!user || !user.ws || user.ws.readyState !== WebSocket.OPEN) {
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
message: `客户端未连接`,
|
message: `客户端未连接`,
|
||||||
@@ -12,11 +13,10 @@ async function pushClientMessage(userPrefix, message) {
|
|||||||
title: message.title,
|
title: message.title,
|
||||||
description: message.description,
|
description: message.description,
|
||||||
};
|
};
|
||||||
console.log(JSON.stringify(data));
|
|
||||||
user.ws.send(JSON.stringify(data));
|
user.ws.send(JSON.stringify(data));
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
message: '消息已发送给 WebSocket 客户端',
|
message: '消息已发送至客户端',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user