Analisis ringkas tentang cara menggunakan modul Socket.IO secara elegan dalam nod

青灯夜游
Lepaskan: 2022-11-22 19:53:14
ke hadapan
1476 orang telah melayarinya

Bagaimana untuk menggunakan modul Socket.IO dalam

nod? Artikel berikut akan memperkenalkan kepada anda cara menggunakan modul Socket.IO secara elegan dalam node.js. Saya harap ia akan membantu anda!

Analisis ringkas tentang cara menggunakan modul Socket.IO secara elegan dalam nod

Takrifan Socket.IO

Socket.IO ialah WebSocket库, termasuk 客户端的js dan 服务器端的node.js, matlamatnya adalah untuk membina aplikasi masa nyata yang boleh digunakan pada penyemak imbas dan peranti mudah alih yang berbeza. [Tutorial berkaitan yang disyorkan: tutorial video nodejs]

Socket.IO merangkum semua WebSocket、AJAX和其它的通信方式 ke dalam 统一的通信接口, iaitu, apabila kami menggunakan SocketIO, 不用担心兼容问题,底层会自动选用最佳的通信方式.


Kelebihan Socket.IO

  • Socket.io merangkum pelayan dan klien, menggunakan It is sangat mudah dan senang digunakan.

  • socket.io menyokong platform merentas, yang bermaksud anda mempunyai lebih banyak pilihan untuk membangunkan aplikasi masa nyata pada platform kegemaran anda.

  • socket.io boleh menyesuaikan acara untuk dihantar kepada rakan sebaya, yang boleh menjadi pelayan atau pelanggan; 使用emit发送,接收还是on

  • Ia secara automatik akan memilih cara terbaik untuk melaksanakan aplikasi rangkaian masa nyata berdasarkan penyemak imbas daripada WebSocket, tinjauan panjang AJAX, penstriman Iframe, dll., yang sangat mudah dan pengguna- mesra, dan pelayar minimum yang disokong ialah IE5.5. Jika websocket tidak disokong, ia boleh diturunkan secara automatik kepada

    轮询

Pasang Socket.IO dalam nod

Buka terminal , masukkan kod berikut dalam terminal untuk memasang modul Socket.IO:

npm i socket.io
Salin selepas log masuk

Gunakan Socket.IO dalam nod

dan emit ialah dua API paling penting, masing-masing sepadan dengan acara on dan 发送 监听

Kami boleh mentakrifkannya dengan sangat bebas dalam

dan 服务端, dan kemudian dalam 发送一个事件emitDengar客户端, dan sebaliknya. on

yang dihantar juga sangat percuma, 内容格式. Menggunakan fungsi panggil balik membolehkan lebih banyak interaksi mudah alih. 既可以是基本数据类型 Number,String,Boolean 等,也可以是 Object,Array 类型,甚至还可以是函数

memancarkan

: socket.emit(eventName[, ...args])发射(触发)一个事件

socket.emit('aaa','你好,前台')
Salin selepas log masuk
Di sini kita ambil

sebagai contoh: buat acara (服务端)socket.emit() melalui kaedah 第一个参数:自定义事件 dalam pelayan, dan hantar maklumat (aaa) 第二个参数.你好,前台

Nota: boleh melepasi sebagai parameter kedua, kerana 对象 mempunyai kaedah emit方法内部 yang menukar objek secara automatik kepada rentetan. JSON.stringfy()

pada

: socket.on(eventName, callback)监听一个 emit 发射的事件

socket.on('aaa',(msg)=>{
	console.log(msg)
})
Salin selepas log masuk
Mengambil

sebagai contoh di sini, pelanggan mendengar acara 客户端 di sebelah pelayan, dan kemudian mencetak maklumat yang dihantar oleh aaa melalui fungsi panggil balik. aaa


Diperkenalkan dan digunakan dalam ekspres

Pelayan

const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', socket => {
	console.log('恭喜你连接成功!')
	socket.on("message",(msg)=>{
		console.log(msg)  //你好 后台
		//注意 : 这里的 io.emit() 是默认转发给全部客户端信息,所有客户端都可以收到
		io.emit("allMsg","广播 : 欢迎来到聊天室")
	})
});
server.listen(3000);
Salin selepas log masuk
melepasi

sebagai parameter untuk menunjukkan bahawa perkhidmatan yang dipasang oleh server masih berdasarkan io. http Kod di sini bermakna selagi sambungan berjaya, mesej kejayaan sambungan akan dicetak!


Pelanggan

<script src="/socket.io/socket.io.js"></script>
<script>
  const socket = io();  //默认连接服务端启动的本地端口地址
  socket.emit("message","你好 后台")
  // 监听服务端的广播事件,接收广播的消息
  socket.on("allMsg",(msg)=>{
		console.log(msg)  //广播 : 欢迎来到聊天室
  })
</script>
Salin selepas log masuk
Anda perlu merujuk fail

secara berasingan pada klien sebelah kerana socket.io bukan modul terbina dalam penyemak imbas dan perlu dirujuk secara berasingan Kod dalaman fail js ==> socket.io.jskod dalaman socket.io.js Salin kod di sini ke fail js yang anda buat, dan kemudian dirujuk dalam klien. Selagi
muncul dalam klien, penyemak imbas akan menyambung terus ke alamat perkhidmatan setempat yang dimulakan oleh klien secara lalai. const socket = io()


Ringkasan

Secara relatifnya, modul pihak ketiga socket.io lebih mudah dan cekap semasa menulis kod Modul ws, cawangan switch digunakan untuk membentangkan 聊天类型 yang berbeza dalam cara yang berbeza Dalam modul socket.io, masalah ini boleh diselesaikan dengan hanya menggunakan 自定义事件, dan socket.io boleh digunakan apabila. pelayan terputus sambungan Selepas membukanya, anda boleh menyambung secara automatik apabila anda memasuki klien sekali lagi, dan prestasi keseluruhan adalah lebih baik daripada modul ws.

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci Analisis ringkas tentang cara menggunakan modul Socket.IO secara elegan dalam nod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan