mirror of
https://github.com/esiur/esiur-js.git
synced 2025-06-26 23:03:13 +00:00
2.0.0
This commit is contained in:
@ -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);
|
||||
|
@ -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
43
demo/dotnet/service.js
Normal 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);
|
@ -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";
|
||||
|
Reference in New Issue
Block a user