2
0
mirror of https://github.com/esiur/esiur-js.git synced 2025-06-26 23:03:13 +00:00
This commit is contained in:
2022-03-13 11:28:38 +03:00
parent 7b1b844753
commit 15eb1453e7
55 changed files with 24308 additions and 4587 deletions

View File

@ -6,10 +6,10 @@ import DistributedServer from "../../src/Net/IIP/DistributedServer.js";
import IMembership from "../../src/Security/Membership/IMembership.js";
import WSocket from "../../src/Net/Sockets/WSocket.js";
import MemoryStore from "../../src/Stores/MemoryStore.js";
import DC from "../../src/Data/DataConverter.js";
import DC from "../../src/Data/DC.js";
import IResource from "../../src/Resource/IResource.js";
import Structure from "../../src/Data/Structure.js";
import DataType from "../../src/Data/DataType.js";
import TransmissionType, { TransmissionTypeIdentifier } from "../../src/Data/TransmissionType.js";
import TypedMap from "../../src/Data/TypedMap.js";
const require = createRequire(import.meta.url);
@ -36,15 +36,15 @@ class MyChat extends IResource {
static get template() {
return {
namespace: "Chat",
properties: [["title", DataType.String], ["messages", DataType.StructureArray], ["users", DataType.StringArray]],
events: [["message", DataType.Structure], ["voice", 0, {listenable: true }], ["login"], ["logout"]],
functions: [[ "send", {msg: DataType.String} ]]
properties: [["title", String], ["messages", Array], ["users", Array]],
events: [["message", Map], ["voice", 0, {listenable: true }], ["login"], ["logout"]],
functions: [[ "send", [["msg", String, {optional: true}] ]]]
};
}
constructor() {
super();
this.messages = [new Structure({usr: "Admin", msg: "Welcome to Esiur", date: new Date()})];
this.messages = [new TypedMap({usr: "Admin", msg: "Welcome to Esiur", date: new Date()})];
this.title = "Chat Room";
}
@ -54,7 +54,7 @@ class MyChat extends IResource {
send(msg, sender)
{
let s = new Structure({ msg, usr: sender.session.remoteAuthentication.username, date: new Date()});
let s = new TypedMap({ msg, usr: sender.session.remoteAuthentication.username, date: new Date()});
this.messages.push(s);
this._emit("message", s);
}
@ -64,6 +64,10 @@ class MyChat extends IResource {
}
}
let x = TransmissionType.compose(TransmissionTypeIdentifier.List, new DC([1,2,3,4,5,6]));
let tt = TransmissionType.parse(x, 0, x.length);
let sys = await Warehouse.new(MemoryStore, "sys");
let ms = await Warehouse.new(MyMembership, "ms");
let chat = await Warehouse.new(MyChat, "chat", sys);

View File

@ -34,7 +34,7 @@
{
let el = document.createElement("div");
let list = document.getElementById("list");
el.innerHTML = `<span>${message.usr}</span><span>${message.msg}</span><span>${message.date.toLocaleTimeString()}</span>`;
el.innerHTML = `<span>${message.get("usr")}</span><span>${message.get("msg")}</span><span>${message.get("date").toLocaleTimeString()}</span>`;
list.append(el);
list.scrollTop = list.scrollHeight;
}

43
demo/dotnet/service.js Normal file
View File

@ -0,0 +1,43 @@
import Warehouse from "../../src/Resource/Warehouse.js";
import { createRequire } from 'module'
const require = createRequire(import.meta.url);
const WebSocket = require('ws');
var remote = await Warehouse.get('iip://localhost/mem/service');
// remote?.instance?.template.properties.forEach((element) => {
// console.log(element.name);
// console.log(remote[element.name]);
// });
await remote?.Void();
await remote?.Connection('ss', 33);
await remote?.ConnectionOptional('Test 2', 88);
var rt = await remote?.Optional('Optional', 311);
console.log(rt);
var t2 = await remote?.GetTuple2(1, 'A');
console.log(t2);
var t3 = await remote?.GetTuple3(1, 'A', 1.3);
console.log(t3);
var t4 = await remote?.GetTuple4(1, 'A', 1.3, true);
console.log(t4);
remote?.on('StringEvent', (args) => console.log(`StringEvent ${args}`));
remote?.on('ArrayEvent', (args) => console.log(`ArrayEvent ${args}`));
await remote?.InvokeEvents('Hello');
// var mcr = MyChildRecord()
// ..ChildName = "I'm Child"
// ..Name = 'Dad'
// ..Score = 332
// ..Id = 44;
// var rec = await remote?.SendRecord(mcr);
// print(rec);

View File

@ -6,7 +6,7 @@ import DistributedServer from "../../src/Net/IIP/DistributedServer.js";
import IMembership from "../../src/Security/Membership/IMembership.js";
import WSocket from "../../src/Net/Sockets/WSocket.js";
import MemoryStore from "../../src/Stores/MemoryStore.js";
import DC from "../../src/Data/DataConverter.js";
import DC from "../../src/Data/DC.js";
import IResource from "../../src/Resource/IResource.js";
import Structure from "../../src/Data/Structure.js";
import MongoDBStore from "../../src/Stores/MongoDBStore.js";