实现gmxhr
Some checks failed
build / Build (push) Failing after 6s
test / Run tests (push) Failing after 8s
Some checks failed
build / Build (push) Failing after 6s
test / Run tests (push) Failing after 8s
This commit is contained in:
@ -17,7 +17,7 @@ export class CustomEventMessage implements Message {
|
||||
EE: EventEmitter = new EventEmitter();
|
||||
|
||||
// 关联dom目标
|
||||
relatedTarget: Map<number, Element> = new Map();
|
||||
relatedTarget: Map<number, Document> = new Map();
|
||||
|
||||
constructor(
|
||||
protected flag: string,
|
||||
@ -25,7 +25,7 @@ export class CustomEventMessage implements Message {
|
||||
) {
|
||||
window.addEventListener((isContent ? "ct" : "fd") + flag, (event) => {
|
||||
if (event instanceof MouseEvent) {
|
||||
this.relatedTarget.set(event.clientX, <Element>event.relatedTarget);
|
||||
this.relatedTarget.set(event.clientX, <Document>event.relatedTarget);
|
||||
return;
|
||||
} else if (event instanceof CustomEvent) {
|
||||
this.messageHandle(event.detail, new CustomEventPostMessage(this));
|
||||
@ -130,4 +130,10 @@ export class CustomEventMessage implements Message {
|
||||
this.nativeSend(body);
|
||||
});
|
||||
}
|
||||
|
||||
getAndDelRelatedTarget(id: number) {
|
||||
const target = this.relatedTarget.get(id);
|
||||
this.relatedTarget.delete(id);
|
||||
return target;
|
||||
}
|
||||
}
|
||||
|
@ -114,9 +114,15 @@ export class Group {
|
||||
}
|
||||
|
||||
// 转发消息
|
||||
export function forwardMessage(prefix: string, path: string, from: Server, to: MessageSend) {
|
||||
from.on(path, (params, fromCon) => {
|
||||
export function forwardMessage(prefix: string, path: string, from: Server, to: MessageSend, middleware?: ApiFunction) {
|
||||
from.on(path, async (params, fromCon) => {
|
||||
console.log("forwardMessage", path, prefix, params);
|
||||
if (middleware) {
|
||||
const resp = await middleware(params, new GetSender(fromCon));
|
||||
if (resp !== false) {
|
||||
return resp;
|
||||
}
|
||||
}
|
||||
if (fromCon) {
|
||||
const fromConnect = fromCon.getConnect();
|
||||
to.connect({ action: prefix + "/" + path, data: params }).then((toCon) => {
|
||||
|
Reference in New Issue
Block a user