Rumah >hujung hadapan web >tutorial js >Bina sistem pemesejan segera berdasarkan socket.io dan node.js_node.js

Bina sistem pemesejan segera berdasarkan socket.io dan node.js_node.js

WBOY
WBOYasal
2016-05-16 16:40:401572semak imbas

Bina pelayan soket web menggunakan socket.io dan nodejs

socket.io bukan sahaja boleh membina perkhidmatan websocket sebelah pelanggan, tetapi juga menyokong soket web sebelah pelayan nodejs.

Izinkan saya memperkenalkan cara memasang dan mengkonfigurasi nodej.

Pergi ke http://nodejs.org/#download untuk memuat turun fail msi. Teruskan klik di sebelah untuk memasang. Fail akhir akan dipasang secara automatik dalam direktori C:nodejs.

Selepas pemasangan selesai, pembolehubah persekitaran akan dikonfigurasikan secara automatik. Jika tiada konfigurasi automatik, tambah secara manual ;C:nodejs ke laluan.

Selepas pemasangan selesai, npm perlu dikonfigurasikan untuk mengurus modul node.js.

Memasang npm di bawah tetingkap memerlukan pemasangan git.

Selepas memasang git, buka gitbush. Ikuti langkah ini:

git config --system http.sslcainfo /bin/curl-ca-bundle.crt

git clone --recursive git://github.com/isaacs/npm.git

cd npm

node cli.js install npm -gf

Langkah pertama ialah menyediakan tanpa sebarang gesaan Langkah kedua ialah memuat turun npm dari github dan akan ada fail muat turun dan kemajuan Langkah keempat ialah memasang npm ke node.js dan menyalin beberapa fail cmd dan mode_modules Klipkannya ke direktori nodejs.

Ini akan mengkonfigurasi npm.

Jika anda perlu memasang sebarang modul, terus masukkan npm install ***.

Mereka yang tidak mempunyai npm atau pengguna Windows boleh menggunakan github untuk memuat turun socket.io dan memasukkannya ke dalam folder node_modules Untuk konfigurasi khusus, sila rujuk artikel: "Tutorial Nodejs: Mengkonfigurasi Struktur Direktori Windows Nodejs.exe" <.>

soket pemasangan nodejs.io

Gunakan pemalam nod untuk mengurus pakej dan jalankan arahan berikut untuk berjaya memasang socket.io

npm install socket.io

Contoh yang dilaksanakan menggunakan socket.io

Kod pelanggan:

<html> 

<head> 

  <title></title> 

  <script src="../js/socket.io.client.js"></script> 

  <script type="text/javascript"> 

    function doit() { 

      var socket = io.connect('http://localhost'); 

      socket.on('news', function (data) {//接收到服务器发送过来的名为'new'的数据 

        console.log(data.hello);//data为应服务器发送过来的数据。 

        socket.emit('my new event', { my:'new data' });//向服务器发送数据,实现双向数据传输 

      }); 

      socket.on('other', function (data) {//接收另一个名为'other'数据, 

        console.log(data.hello); 

        socket.emit('event1', { my:'other data' }); 

      }); 

    } 

  </script> 

</head> 

<body> 

<button id='btn' onclick="doit()">click me</button> 

</body> 

</html> 

socket.io.client.js boleh dimuat turun secara setempat daripada

https://github.com/LearnBoost/socket.io-client dan tuding kepadanya dalam adc1155061279776b3f669ae9a3b7ec8 Pustaka mesin js.

Pelayan dilaksanakan dengan nodej

server2.js

var http= require('http'), io= require('socket.io'), express= require('express'); 

var app = express.createServer(), io = io.listen(app); 

app.listen(80); 

io.sockets.on('connection', function (socket) { 

 socket.emit('news', { hello: 'world' });//监听,一旦客户端连接上,即发送数据,第一个参数'new'为数据名,第二个参数既为数据 

 socket.on('my other event', function (data) {//捕获客户端发送名为'my other event'的数据 

  console.log(data.my); 

 }); 

 socket.emit('other', { hello: 'other world' });//发送另一个数据 

 socket.on('evnet1', function (data) {//捕获另外一个数据 

  console.log(data.my); 

 }); 

}); 

Keputusan ujian boleh dipaparkan seperti biasa pada klien

Hasil paparan sisi pelayan:

C:javaNodejs>nod server2.js

Nota: Kod mesti berada dalam direktori yang sama dengan npm_module. Jika tidak, akan berlaku ralat bahawa modul socket.io tidak dapat ditemui.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn