Browse Source

微调

master
xuqm 1 year ago
parent
commit
70e5a14c11
11 changed files with 6698 additions and 37 deletions
  1. +1
    -0
      npm/README.md
  2. +1
    -1
      npm/index.js
  3. +1
    -1
      npm/package.json
  4. +1
    -0
      npmSzyx/README.md
  5. +91
    -0
      npmSzyx/index.d.ts
  6. +1
    -0
      npmSzyx/index.js
  7. +30
    -0
      npmSzyx/package.json
  8. +4
    -3
      web/package.json
  9. +1
    -1
      web/src/main.js
  10. +33
    -31
      web/src/src/szyx-push-sdk.js
  11. +6534
    -0
      web/yarn.lock

+ 1
- 0
npm/README.md View File

@@ -0,0 +1 @@
npm login --registry=http://127.0.0.1:1022/repository/npm-hosted/

+ 1
- 1
npm/index.js
File diff suppressed because it is too large
View File


+ 1
- 1
npm/package.json View File

@@ -1,6 +1,6 @@
{
"name": "@szyx/szyx-push-web",
"version": "0.0.22",
"version": "0.0.23",
"description": "数字医信-即时通讯-im-js-sdk",
"main": "index.js",
"scripts": {


+ 1
- 0
npmSzyx/README.md View File

@@ -0,0 +1 @@
npm login --registry=http://nexus.51trust.net/repository/npm-hosted/

+ 91
- 0
npmSzyx/index.d.ts View File

@@ -0,0 +1,91 @@
declare const SzyxPush: ISzyxPush;
export default SzyxPush;


export declare enum OsType {
ios = 1,
android = 2,
web = 3,
windows = 4,
mac = 5,
wx = 6,
unknown = -1,
}

export const enum MsgType {
unknown = -1,
text = 1,
voice = 2,
image = 3,
location = 4,
video = 5,
file = 6,
at = 7,
other = 8,
log = 9,

}

export declare type MessageListener = (messageType: MsgType, message: Message) => void;

/**
* 当messageType为text的时候,返回这个
*/
export declare interface TextMessage {
text: string
}

export declare interface PictureMessage {
url: string
thumbnail: string
thumbnailWidth: number
thumbnailHeight: number
}

export declare interface Message {
/**
* 租户id
*/
tenantNo: string;
messageType: MsgType;
messageId: string;
target: string;
fromClientId: string;
toClientId: string;
timestamp: number;
message: string | TextMessage | PictureMessage;
}


export declare interface ISzyxPush {

setBaseUrl(url: string)

install(app, tenantNo: string, osType: OsType, url?: string): Promise<void>;


/**
* 初始化方法,建议放在main.js中
* @param tenantNo 租户id,在平台获取
* @param osType 设备类型 {@link OsType}
* @param url 服务端地址,可以不传
*/
init(tenantNo: string, osType: OsType, url?: string): Promise<void>;

register(userId: string): Promise<void>;

/**
*添加消息回调,到达的消息统一分发入口
* @param callback
* @return callbackId 页面关闭时记得用 {@link unMessage}注销
*/
onMessage(callback: MessageListener): number;

/**
*注销消息回调
* @param callId 由{@link onMessage}返回
*/
unMessage(callId): void;

sendTextMsg(userId: string, text: string, describe?: string): Promise<Message>;
}

+ 1
- 0
npmSzyx/index.js
File diff suppressed because it is too large
View File


+ 30
- 0
npmSzyx/package.json View File

@@ -0,0 +1,30 @@
{
"name": "@szyx/szyx-push-web",
"version": "0.0.1",
"description": "数字医信-即时通讯-im-js-sdk",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"files": [
"index.js",
"index.d.ts"
],
"keywords": [
"szyx-push-web",
"szyx",
"js-sdk",
"shuziyixin"
],
"author": "deployment",
"license": "ISC",
"publishConfig": {
"registry": "https://nexus.51trust.net/repository/npm-hosted/"
},
"dependencies": {
"net": "^1.0.2",
"stompjs": "^2.3.3",
"axios": "^1.3.4",
"fingerprintjs2": "^2.1.4"
}
}

+ 4
- 3
web/package.json View File

@@ -8,8 +8,9 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
"@szyx/szyx-push-web": "^0.0.21",
"@typescript-eslint/parser": "^5.57.0",
"axios": "^1.3.4",
"babel-eslint": "^10.1.0",
"core-js": "^3.8.3",
"element-plus": "^2.3.1",
"fingerprintjs2": "^2.1.4",
@@ -25,7 +26,7 @@
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3"
"eslint-plugin-vue": "^9.10.0"
},
"eslintConfig": {
"root": true,
@@ -37,7 +38,7 @@
"eslint:recommended"
],
"parserOptions": {
"parser": "@babel/eslint-parser"
"parser": "babel-eslint"
},
"rules": {}
},


+ 1
- 1
web/src/main.js View File

@@ -8,4 +8,4 @@ import "@/index";
import {OsType} from "@/src/szyx-push-sdk";
import {SzyxPush} from "@/index";

createApp(App).use(router).use(ElementPlus).use(SzyxPush, '123456', OsType.web, 'http://192.168.115.137:8888').mount('#app')
createApp(App).use(router).use(ElementPlus).use(SzyxPush, '123456', OsType.web).mount('#app')

+ 33
- 31
web/src/src/szyx-push-sdk.js View File

@@ -1,18 +1,18 @@
import Fingerprint2 from 'fingerprintjs2';
import axios from 'axios';
import Stomp from "stompjs";
import Fingerprint2 from 'fingerprintjs2'
import axios from 'axios'
import Stomp from "stompjs"


export var OsType;
(function (OsType) {
OsType[OsType["unknown"] = -1] = "unknown";
OsType[OsType["ios"] = 1] = "ios";
OsType[OsType["android"] = 2] = "android";
OsType[OsType["web"] = 3] = "web";
OsType[OsType["windows"] = 4] = "windows";
OsType[OsType["mac"] = 5] = "mac";
OsType[OsType["wx"] = 6] = "wx";
})(OsType || (OsType = {}));
OsType[OsType["unknown"] = -1] = "unknown"
OsType[OsType["ios"] = 1] = "ios"
OsType[OsType["android"] = 2] = "android"
OsType[OsType["web"] = 3] = "web"
OsType[OsType["windows"] = 4] = "windows"
OsType[OsType["mac"] = 5] = "mac"
OsType[OsType["wx"] = 6] = "wx"
})(OsType || (OsType = {}))


export const MsgType = {
@@ -23,17 +23,17 @@ class SzyxPushClient {


constructor() {
this.mapCall = new Map();
this._mapMsg = new Map();
this.mapCall = new Map()
this._mapMsg = new Map()

this._host = null;
this._port = null;
this._deviceType = null;
this._host = null
this._port = null
this._deviceType = null

this._user = null;
this._user = null

this._client = null;
this.socketOpen = false;
this._client = null
this.socketOpen = false
this.ws = {
send: this.sendSocketMessage
}
@@ -41,9 +41,9 @@ class SzyxPushClient {

guid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8)
return v.toString(16)
})
}

_parseMsg(message) {
@@ -129,15 +129,15 @@ class SzyxPushClient {
packetType: 'SENDACK', messageId: message.messageId
}))
for (const call of this.mapCall.values()) {
call(message.messageType, this._parseMsg(message));
call(message.messageType, this._parseMsg(message))
}
} else if (message.packetType === 'SENDACK') {
const m = this._mapMsg.get(message.messageId)
if (m) m.call(this._parseMsg(m.message))
this._mapMsg.delete(message.messageId)
}
}, error => reject(`订阅消息失败::${error}`));
}, error => reject(`连接服务器失败::${error}`), '/');
}, error => reject(`订阅消息失败::${error}`))
}, error => reject(`连接服务器失败::${error}`), '/')
}

connect(user) {
@@ -233,15 +233,17 @@ const _connect = (res, resolve, reject) => {
}

const SzyxPush = {
_baseUrl: 'http://192.168.115.137:8888', setBaseUrl: function (url) {
setBaseUrl: function (url) {
if (url && url.startsWith('http'))
this._baseUrl = url
else {
this._baseUrl = 'http://192.168.115.137:8888'
}
}, install: function (app, tenantNo, osType, url) {
app.config.globalProperties.$SzyxPush = this;
app.config.globalProperties.$SzyxPush = this
return this.init(tenantNo, osType, url)
}, init: function (tenantNo, osType, url) {
if (url && url.startsWith('http'))
this._baseUrl = url
this.setBaseUrl(url)
console.log(`${tenantNo}::${osType}`)
_imUser._tenantNo = tenantNo
_imClient.setDeviceType(osType)
@@ -268,7 +270,7 @@ const SzyxPush = {
}, fail: e => {
reject(`注册im服务失败::${error}`)
}
});
})

} else {
axios.create({
@@ -285,5 +287,5 @@ const SzyxPush = {
}, sendTextMsg: function (userId, text, describe) {
return _imClient.sendTextMsg(userId, text, describe)
}
};
}
export default SzyxPush

+ 6534
- 0
web/yarn.lock
File diff suppressed because it is too large
View File


Loading…
Cancel
Save