包頭:
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已經...