Home Manual Reference Source Repository
import MessageBuilderService from 'netflux/src/service/MessageBuilderService.js'
public class | source

MessageBuilderService

Extends:

service/Service~Service → MessageBuilderService

Message builder service is responsible to build messages to send them over the WebChannel and treat messages received by the WebChannel. It also manage big messages (more then 16ko) sent by users. Internal messages are always less 16ko.

Method Summary

Public Methods
public

handleUserMessage(data: UserMessage, senderId: number, recipientId: number, action: function(dataChunk: ArrayBuffer), isBroadcast: boolean)

Prepare user message to be sent over the WebChannel.

public

msg(code: number, senderId: number, recepientId: number, data: Object): ArrayBuffer

Build a message which can be then sent trough the Channel.

public

Extract header from the message.

public

Read internal Netflux message.

public

readUserMessage(wc: WebChannel, senderId: number, data: ArrayBuffer, action: function(msg: UserMessage, isBroadcast: boolean))

Read user message which was prepared by another peer with MessageBuilderService#handleUserMessage and sent.

Public Methods

public handleUserMessage(data: UserMessage, senderId: number, recipientId: number, action: function(dataChunk: ArrayBuffer), isBroadcast: boolean) source

Prepare user message to be sent over the WebChannel.

Params:

NameTypeAttributeDescription
data UserMessage

Message to be sent

senderId number

Id of the peer who sends this message

recipientId number

Id of the recipient peer

action function(dataChunk: ArrayBuffer)

Send callback executed for each data chunk if the message is too big

isBroadcast boolean
  • optional
  • default: true

Equals to true if this message would be sent to all WebChannel members and false if only to one member

public msg(code: number, senderId: number, recepientId: number, data: Object): ArrayBuffer source

Build a message which can be then sent trough the Channel.

Params:

NameTypeAttributeDescription
code number

One of the internal message type code (e.g. {@link USER_DATA})

senderId number
  • optional
  • default: null
recepientId number
  • optional
  • default: null
data Object
  • optional
  • default: {}

Could be empty if the code is enough

Return:

ArrayBuffer

Built message

public readHeader(data: ArrayBuffer): MessageHeader source

Extract header from the message. Each user message has a header which is a part of the message metadata.

Params:

NameTypeAttributeDescription
data ArrayBuffer

Whole message

Return:

MessageHeader

public readInternalMessage(data: ArrayBuffer): Object source

Read internal Netflux message.

Params:

NameTypeAttributeDescription
data ArrayBuffer

Message

Return:

Object

public readUserMessage(wc: WebChannel, senderId: number, data: ArrayBuffer, action: function(msg: UserMessage, isBroadcast: boolean)) source

Read user message which was prepared by another peer with MessageBuilderService#handleUserMessage and sent.

Params:

NameTypeAttributeDescription
wc WebChannel

WebChannel

senderId number

Id of the peer who sent this message

data ArrayBuffer

Message

action function(msg: UserMessage, isBroadcast: boolean)

Callback when the message is ready