nodeでtypescriptを使ってsocketを開発して実践します.
3085 ワード
最近は業務用のsocketを使って接続して送るのもmqttを使って開発にTCPの知識を知る必要があります.私も少しsoketの知識を持っています.友達の助けになりたいです.
BBなしで直接ビジネスシーンを話します.クライアントはゲートウェイに接続する必要があります.ゲートウェイはこのsocketを持って自分で更に取引所にsocketを作りに行きます.取引所には情報通知があります.同時に、一部の業務はクライアントに通知する必要があります.ゲートウェイsocketも走ります.同時に、すべてのデータ転送はpbを使います.準備作業typescript vscode環境構成nodeゲートウェイtelnetクライアントprotobufferは を紹介しませんでした. typescriptマイクロソフトが開発した強力なタイプのプログラミング言語jsのオーバーセット完璧な互換性があります.私達の開発環境はts+vscode を使います.インストールts nodeゲートウェイ、私たちはsslかtslかに関わらず、最も簡単なnetでsocketゲートウェイを作ります. telnet macの下にインストールされたtelnet です.
BBなしで直接ビジネスシーンを話します.クライアントはゲートウェイに接続する必要があります.ゲートウェイはこのsocketを持って自分で更に取引所にsocketを作りに行きます.取引所には情報通知があります.同時に、一部の業務はクライアントに通知する必要があります.ゲートウェイsocketも走ります.同時に、すべてのデータ転送はpbを使います.
npm init -g -s tsc
はプロジェクトディレクトリの下でtsc init
が成功しないとtsconfig.jsonファイルを直接作成すればいいです.{
"compilerOptions": {
"target": "es6",
"sourceMap": true,
"module": "commonjs",
"outDir": "./dist",
"noImplicitAny": true,
},
"include": [
"src/**/*"
]
}
srcフォルダを作成して、distフォルダokを継続して、command+shift+Bを選択して監視しています.変更があれば、自動的にjsコードを生成できます.mapファイルが存在します.gitアップロード時は無視すればいいです.この時、私達のコードはtsを使って書き込みができます.そして、調整がスムーズです.import * as TCP from "net"
const tcp = TCP.createServer((socket:TCP.Socket)=>{
const buffer:Buffer = new Buffer("hello",'utf-8')
// socket.write(buffer)
console.log('CONNECTED: ' +
socket.remoteAddress + ':' + socket.remotePort);
socket.write(buffer);
socket.on('data', function(data) {
console.log('DATA ' + socket.remoteAddress + ': ' + data);
// ,
socket.write('You said "' + data + '"');
});
})
tcp.listen(3999,()=>{
console.log('1234')
})
これはtcpサービスが運行しています.brew install telnet
を使ってゲートウェイtelnet localhost 3999
に接続しました.4.クライアントhttpがあるインターフェースを要求した後、あるsocketに接続するように通知できる業務があります.私たちは配列で各socketを追加します.接続すると、この配列が切断されたら、このsocketのコードは全部import * as TCP from "net"
import * as http from "http"
import { Socket } from "net";
const sockets : Array = new Array()
const tcp = TCP.createServer((socket:TCP.Socket)=>{
sockets.push(socket)
const buffer:Buffer = new Buffer("hello",'utf-8')
// socket.write(buffer)
console.log('CONNECTED: ' +
socket.remoteAddress + ':' + socket.remotePort);
socket.write(buffer);
socket.on('data', function(data) {
console.log('DATA ' + socket.remoteAddress + ': ' + data);
// ,
socket.write('You said "' + data + '"');
});
})
tcp.listen(3999,()=>{
console.log('1234')
})
const app = http.createServer((req,res)=>{
if(req.url == "/socket"){
const s = sockets[0]
s.write(" ")
}
})
app.listen(3000)
t1(1)
このように1つのsocketゲートウェイが転送を完了する部分は、pbを使用して代替することができる.tslリンクの暗号化を追加します.