3.1.3 • Published 4 months ago
simple-room v3.1.3
How use it ?
Server
- Create just a class :
class Page {
}
- Add this room in World:
import { World } from './world'
World.transport(io) // io is socket.io variable
const room = Word.addRoom('room_id', new Page())
- Send packets to client:
setInterval(() => {
World.send()
}, 20)
Client
With socket.io
<script src="sync-client.js"></script>
const socket = io()
socket.emit(':join', 'room_id')
World.listen(socket).value.subscribe((val: { data: any, partial: any }) => {
console.log(val)
})
Add Room Properties:
class Page {
$schema = {
title: String
}
title = ''
}
After adding the room, if you change the property, it will be transmitted to everyone.
const room = Word.addRoom('room_id', Page)
room.title = 'my app' // is send to users in room
Define Schema
Normal Schema
Typescript
@Schema({
title: String
})
export class Page {
title: string = ''
}
Javascript
export class Page {
$schema = {
title: String
}
title = ''
}
Array Properties
Typescript
@Schema({
list: [String]
})
export class Page {
title: string[] = ['yo']
}
Javascript
export class Page {
$schema = {
list: [String]
}
title = ['yo']
}
with collection :
Typescript
@Schema({
list: [{ id: Number, name: String }]
})
export class Page {
list: { id: Number, name: String }[] = []
constructor() {
this.list.push({
id: 1,
name: 'yo'
})
}
}
Javascript
export class Page {
$schema = {
list: [{ id: Number, name: String }]
}
list = []
constructor() {
this.list.push({
id: 1,
name: 'yo'
})
}
}
Object generic key
Typescript
@Schema({
list: [{ id: Number }]
})
export class Page {
list: any = {}
constructor() {
this.list['mykey'] = {
id: 1
}
}
}
Javascript
export class Page {
$schema = {
list: [{ id: Number }]
}
list = {}
constructor() {
this.list['mykey'] = {
id: 1
}
}
}
3.1.3
4 months ago
3.1.2
4 months ago
3.1.1
5 months ago
3.1.0
5 months ago
3.0.4
5 months ago
3.0.3
5 months ago
3.0.2
6 months ago
3.0.1
6 months ago
3.0.6
5 months ago
3.0.5
5 months ago
3.0.0
7 months ago
2.3.0
10 months ago
2.2.0
10 months ago
2.1.1
10 months ago
2.4.1
9 months ago
2.3.2
10 months ago
2.4.0
9 months ago
2.3.1
10 months ago
2.1.0
10 months ago
2.0.3
12 months ago
1.0.2
1 year ago
2.0.2
1 year ago
2.0.4
12 months ago
2.0.1
1 year ago
2.0.0
1 year ago
1.0.1
2 years ago
1.0.0
2 years ago