anysocket
v0.4.29
여러 전송을 통한 추상 네트워킹 계층, E2EE 지원을 통해 클라이언트/서버에 구애받지 않음
이 작업은 진행 중이며 API는 변경될 수 있습니다.
AnySocket.Packer
)/dist/anysocket.browser.js
)** http 전송은 실험적입니다.
정보: 바이너리 RPC 인수와 응답은 자동으로 압축/압축 해제됩니다( AnySocket.Packer.pack
/ AnySocket.Packer.unpack
).
벤치마크 보기
npm install -- save anysocket
또는
< script src =" /dist/anysocket.browser.js " > </ script >
또는 (AnySocketHTTP를 사용하는 경우)
< script src =" @anysocket " > </ script >
다음 예에서는 포트 3000에서 websocket 서버를 시작합니다.
const AnySocket = require ( "anysocket" ) ;
const server = new AnySocket ( ) ;
const PORT = 3000 ;
server . listen ( "ws" , PORT )
. then ( ( ) => {
console . log ( "Listening on port:" , PORT ) ;
} )
. catch ( ( err ) => {
console . error ( "Failed to start server:" , err ) ;
} ) ;
server . on ( "connected" , async ( peer ) => {
console . log ( "Connected" , peer . id ) ;
console . log ( await peer . getSyncedTime ( ) ) // { time: 1674671482107, rtt: 2, offset: 0 }
peer . send ( {
hello : "world"
} ) ;
} ) ;
server . on ( "message" , ( packet ) => {
console . log ( "From:" , packet . peer . id , "Message:" , packet . msg ) ;
} ) ;
server . on ( "disconnected" , ( peer , reason ) => {
console . log ( "Disconnected" , peer . id , "Reason:" , reason ) ;
} ) ;
다음 예에서는 포트 3000의 웹소켓에 연결합니다.
const AnySocket = require ( "anysocket" ) ;
const client = new AnySocket ( ) ;
const PORT = 3000 ;
client . connect ( "ws" , "127.0.0.1" , PORT )
. then ( ( ) => {
console . log ( "Connected to server" ) ;
} )
. catch ( ( err ) => {
console . error ( "Failed to connect to server:" , err ) ;
} ) ;
// after negotiating the AUTH packet, it will trigger the connect event
client . on ( "connected" , async ( peer ) => {
console . log ( "Connected" , peer . id ) ;
console . log ( await peer . getSyncedTime ( ) ) // { time: 1674671482107, rtt: 2, offset: 0 }
peer . send ( {
hello : "world"
} ) ;
} ) ;
client . on ( "message" , ( packet ) => {
console . log ( "From:" , packet . peer . id , "Message:" , packet . msg ) ;
} ) ;
client . on ( "disconnected" , ( peer , reason ) => {
console . log ( "Disconnected" , peer . id , "Reason:" , reason ) ;
} ) ;
examples
폴더에 더 많은 내용이 있습니다.
문서 및 예제 폴더 보기
* 프로토콜은 패킷이 신뢰할 수 있고 순서가 지정된 연결을 사용하여 전송된다고 가정하므로 프로토콜 변경이 필요합니다.
MIT