js之網路訊息收發

2021-10-19 14:05:32 字數 1960 閱讀 7377

包頭

public setsession

(userid: number, sessionid: number)

class packhead

//分解包頭

public decode

(byte: byte)

: byte

}

接受訊息

/**

* 連線到指定的主機和埠。

* 連線成功派發 event.open 事件;連線失敗派發 event.error 事件;連線被關閉派發 event.close 事件;接收到資料派發 event.message 事件; 除了 event.message 事件引數為資料內容,其他事件引數都是原生的 html dom event 物件。

* @param host 伺服器位址。

* @param port 伺服器端口。

*/connect()

:void

let url: string = this._host +

":"+ this._port;if(

!this.protocols || this.protocols.length ==0)

else

this._socket.binarytype =

"arraybuffer"

; this._output = new byte()

; this._output.endian = this.endian;

this._input = new byte()

; this._input.endian = this.endian;

this._addinputposition =0;

this._socket.onopen =

(e: any)

=>

; this._socket.onmessage =

(msg: any)

:void

=>

; this._socket.onclose =

(e: any)

:void

=>

; this._socket.onerror =

(e: any)

:void

=>;}

/** * @private

* 接收到資料處理方法。

* @param msg 資料。

*/protected _onmessage

(msg: any)

:void

var pre: number = this._input.pos;

!this._addinputposition &&

(this._addinputposition =0)

; this._input.pos = this._addinputposition;

if(data)

else

this._addinputposition = this._input.pos;

this._input.pos = pre;

this.

_onmessagedecode()

;}} private _onmessagedecode()

傳送訊息

先往緩衝中寫入20個位元組的包頭,緊跟著,再往緩衝中寫訊息位元組

/**

* 傳送資料到伺服器。

* @param data 需要傳送的資料,可以是string或者arraybuffer。

*/send

(id: number, msg: any)

:void

網路收發之cycleBuf

1 pragma once 23 include 4 include 56 class cyclebuffer722 23virtual cyclebuffer 2430 31 32 剩餘空間數 33int32 t space 3437 38 獲取buf的總大小 39int32 t capatity...

RabbitMQ訊息收發 SpringBoot

rabbitmq是amqp協議的實現。它主要包括以下元件 這裡舉乙個topic模式的例子。name spring boot rabbitmq spring.rabbitmq host 10.20 2.240 spring.rabbitmq port 5672 spring.rabbitmq user...

Mbed OS CAN匯流排收發訊息

can controller area network 是博世公司發明的。是乙個多主訊息廣播系統,最高速率可達1mbps,和傳統的usb,乙太網介面不同。can 不能點對點傳送大資料塊。只能以廣播方式傳送短訊息 8個位元組 和ethernet類似,can採取 csma cd匯流排通訊方式。can已經...