Baru-baru ini, disebabkan keperluan projek, saya telah mengkaji pelaksanaan websocket nodejs, socket.io, yang merupakan rangka kerja yang digunakan secara meluas untuk websocket dalam aplikasi latar belakang nodejs.
Persediaan
1. Pasang socket.io, gunakan arahan npm install socket.io
2. Untuk sistem windows, persekitaran kompilasi vc diperlukan, kerana apabila memasang socket.io, kod vc akan dikompilasi
Prinsip asas permainan
1. Pelayan memantau sambungan pelanggan
2. Apabila sambungan klien berjaya, ikat halaman untuk menggerakkan acara tetikus dan proses acara untuk menghantar koordinat semasa ke pelayan
3. Pelayan menyimpan objek koordinat global dan menggunakan nombor unik pelanggan sebagai nilai kunci
4. Apabila sambungan baharu datang, siarkan koordinat kepada pelanggan lain
5. Apabila pelanggan memutuskan sambungan, pelayan memadam maklumat koordinatnya dan menyiarkannya kepada pelanggan lain
Mula laksanakan kod pelayan
Apabila scoket.io mewujudkan pemantauan pelayan, ia perlu bergantung pada sambungan http untuk mengendalikan protokol naik taraf, jadi ia juga memerlukan modul http Kodnya adalah seperti berikut:
var app = http.createServer().listen(9091);
var ws = io.listen(app);
Kemudian tentukan objek koordinat global
Mula memantau sambungan pelanggan dan menambah fungsi siaran (sebenarnya, anda boleh menggunakan kaedah penyiaran io.sockets.broadcast.emit yang disertakan dengan socket.io Kod teras adalah seperti berikut:
).1. Pelanggan baharu berjaya menyambung dan menghantar maklumat koordinat pelanggan lain
2. Apabila pelanggan mengemas kini maklumat koordinat, ia memberitahu pelanggan lain
3. Pelanggan memutuskan sambungan dan memberitahu pelanggan lain
4. Jenis mesej siaran dibahagikan kepada mengubah suai koordinat dan mengalih keluar koordinat
Memandangkan socket.io ialah rangka kerja tersuai, pelanggan perlu merujuk socket.io.js ini boleh didapati dalam modul socket.io secara amnya node_modulessocket.ionode_modulessocket.io-clientdist. dan Mampatkan dua versi, dan anda boleh menggunakan versi gabungan semasa pembangunan
Kod lengkap adalah seperti berikut: