import Packet from "ketch-in-packet";
try {
const packet = new Packet<"host">({
name:"test-host".
extra: {
type: "host"
active: false,
sharedType: "screen",
extensionId: "eb540ba7-9496-4779-a610-0b33c847384e",
sharedScreen: 4,
},
meetId: "abc-abcd-abc",
version: "0.0.1",
signalingUrl: "https://domain.example.com/",
});
packet.addEventListener("onDraw", (obj, payload, from) => {
if(!그리기허용){
return;
}
const { user, extra } = from;
if (extra.type !== 'extension' && extra.type !== 'thirdParty') {
return;
}
if (payload.type === 'pen') {
const [x, y, w, h, type] = payload.data;
...
buffer(user.id, type, x, y, extra.tool.color);
...
}
});
packet.addEventListener("onChangeUsers", (obj, type, from)=>{
if(type === "exit"){
const connectedUserSize = obj.length
// 접속한 사람 수 업데이트
}
})
} catch (e) {
console.log(e)
}
name | type | description |
---|---|---|
id | string | packet의 고유 식별자를 나타냅니다. |
name | string | 사용자 이름을 나타냅니다. |
status | "대기" / "그리는 중" / "그리기 허용" / "그리기 잠금" | 사용자의 상태를 나타냅니다. |
version | string | 사용자가 사용하는 버전을 나타냅니다. |
name | type | description |
---|---|---|
pen | PayloadPen | 그리기 데이터입니다. |
name | type | description |
---|---|---|
type | "pen" | 그리기 유형을 지정합니다. |
data | [number, number, number, number, "up" or "down" or "move"] | 그리기 유형에 따른 데이터를 지정합니다. |
name | type | description |
---|---|---|
user | User | 사용자 정보를 나타냅니다. |
extra | HostExtra / ExtensionExtra /ThirdPartyExtra | 사용자 데이터를 나타냅니다. |
name | type | description |
---|---|---|
extensionId | string | 익스텐션 사용자 ID (host 소유자) |
type | "host" | payload type |
active | boolean | 그리기 허용 여부 |
sharedType | string | 발표 유형 (전체화면, 창, 브라우저...) |
sharedScreen | number | 발표 스크린 번호 (SharedType이 전체화면일 경우 존재) |
name | type | description |
---|---|---|
tool | ToolOptions | 그리기 도구 옵션 |
type | "extension" | payload type |
hostId | string | 발표 영상 ID (ex, spaces/...) |
dataParticipantId? | string | 사용자의 영상 ID (ex, spaces/...) |
name | type | description |
---|---|---|
tool | ToolOptions | 그리기 도구 옵션 |
type | "thirdParty" | payload type |
extensionId | string | extension의 사용자 식별 ID |
name | type | description |
---|---|---|
color | string | 그리기 색 지정 |
서버와 Connection이 끊겼을 경우 발생합니다. 발생시, WebRTC 연결도 끊기게 됩니다.
const defaultPacket = new Pack({...});
defaultPacket.addEventListener("onDisconnect", (packet:Packet)=>{});
Connection 과정 중 에러가 발생했을 때 호출하게 됩니다.
const defaultPacket = new Pack({...});
defaultPacket.addEventListener("onError", (packet:Packet, errorName:ErrorName, ...args:any[])=>{});
지정된 메시지가 아닌 새로운 메시지가 나왔을 때 발생합니다. 버전 차이가 있을 경우 발생할 수 있습니다.
const defaultPacket = new Pack({...});
defaultPacket.addEventListener("onNotSupportMessage", (packet:Packet, message:Message)=>{});
Host인 경우에만 수신합니다.
그리기 요청이 있을 경우 발생합니다.
const defaultPacket = new Pack({...});
defaultPacket.addEventListener("onDraw", (packet:Packet, data:any, from:Connection)=>{});
특정 사용자의 상태가 변경되었을 경우 발생합니다.
새로운 참여, 나가기, 상태 수정, 이름 수정, 도구 상태 변경 등 전반적인 상태 변경에서 호출됩니다.
const defaultPacket = new Pack({...});
defaultPacket.addEventListener("onChangeUsers", (packet:Packet, type:"join"|"exit"|"update", from:Connection)=>{});
Host인 경우에만 수신합니다.
Host를 실행한 extension에서 넘어온 메시지에 대해서만 수신
발표중인 사용자가 발표를 중단했을 때 발생합니다.
const defaultPacket = new Pack({...});
defaultPacket.addEventListener("onStoppedShared", (packet:Packet)=>{});
id에 해당하는 유저 정보를 반환합니다.
input | Description |
---|---|
id: string |
필요한 유저 정보의 ID를 나타냅니다. |
output | Description |
---|---|
userInfo: User |
사용자 정보를 나태냅니다. |
const defaultPacket = new Pack({...});
defaultPacket.getUser("...")
id에 해당하는 유저의 tool를 반환합니다.
input | Description |
---|---|
id: string |
필요한 유저 정보의 ID를 나타냅니다. |
output | Description |
---|---|
toolOptions: ToolOptions |
해당 사용자의 값을 반환합니다. |
const defaultPacket = new Pack({...});
defaultPacket.getTool("...")
사용자 ID에 해당하는 비디오 ID를 반환합니다. isHost
값이 true
인 경우, 발표 비디오 ID를 반환합니다.
input | Description |
---|---|
id: string |
video ID를 찾고자 하는 사용자 ID를 입력합니다. |
isHost: boolean |
발표자 video를 찾고자 할 경우 true로 지정합니다. |
output | Description |
---|---|
videoId: string |
video ID를 반환합니다. |
const defaultPacket = new Pack({...});
defaultPacket.getVideoId()
그리기를 요청합니다.
input | Description |
---|---|
payload: Painting |
그리기 정보를 입력합니다. |
target: string |
그리기 정보를 보낼 사용자(Host 한정 ) ID를 입력합니다. |
const defaultPacket = new Pack({...});
defaultPacket.draw()
모든 연결을 끊고 이벤트를 종료합니다.
const defaultPacket = new Pack({...});
defaultPacket.destroy()
name | method | type (set : params, get : returns) | description |
---|---|---|---|
status | set | STATUS_TEXT | 사용자의 상태를 수정할 때 사용합니다. |
payload | set | HostExtra / ExtensionExtra /ThirdPartyExtra | 사용자의 옵션을 업데이트합니다. |
payload | get | HostExtra / ExtensionExtra /ThirdPartyExtra | 사용자의 옵션을 반환합니다. |
id | get | string | 사용자의 ID를 반환합니다. |
type | get | string | 사용자의 유형을 반환합니다. |
version | get | string | 사용자가 사용하는 버전을 반환합니다. |
length | get | number | 접속 중인 "사람" 수만 반환합니다. |
lowerExtensionVersion | get | string | 익스텐션 버전 중 가장 낮은 버전을 반환합니다. |
users | get | User [] |
접속하고 있는 모든 사용자를 반환합니다. |
hostUsers | get | User |
접속하고 있는 호스트 사용자만 반환합니다. |
isShared | get | boolean | 공유 중인 상태인지 반환합니다. |