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!
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, 不用担心兼容问题,底层会自动选用最佳的通信方式
.
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
轮询
npm i socket.io
dan emit
ialah dua API paling penting, masing-masing sepadan dengan acara on
dan 发送
监听
dan 服务端
, dan kemudian dalam 发送一个事件emit
Dengar客户端
, dan sebaliknya. on
yang dihantar juga sangat percuma, 内容格式
. Menggunakan fungsi panggil balik membolehkan lebih banyak interaksi mudah alih. 既可以是基本数据类型 Number,String,Boolean 等,也可以是 Object,Array 类型,甚至还可以是函数
: socket.emit(eventName[, ...args])
发射(触发)一个事件
socket.emit('aaa','你好,前台')
Di sini kita ambilsebagai contoh: buat acara (
服务端
)socket.emit()
melalui kaedah第一个参数:自定义事件
dalam pelayan, dan hantar maklumat (aaa
)第二个参数
.你好,前台
Nota: boleh melepasi sebagai parameter kedua, kerana
对象
mempunyai kaedahemit方法内部
yang menukar objek secara automatik kepada rentetan.JSON.stringfy()
: socket.on(eventName, callback)
监听一个 emit 发射的事件
socket.on('aaa',(msg)=>{ console.log(msg) })
Mengambilsebagai contoh di sini, pelanggan mendengar acara
客户端
di sebelah pelayan, dan kemudian mencetak maklumat yang dihantar olehaaa
melalui fungsi panggil balik.aaa
Diperkenalkan dan digunakan dalam ekspres
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);
melepasisebagai parameter untuk menunjukkan bahawa perkhidmatan yang dipasang oleh
server
masih berdasarkanio
.http
Kod di sini bermakna selagi sambungan berjaya, mesej kejayaan sambungan akan dicetak!
<script src="/socket.io/socket.io.js"></script> <script> const socket = io(); //默认连接服务端启动的本地端口地址 socket.emit("message","你好 后台") // 监听服务端的广播事件,接收广播的消息 socket.on("allMsg",(msg)=>{ console.log(msg) //广播 : 欢迎来到聊天室 }) </script>
Anda perlu merujuk failsecara berasingan pada klien sebelah kerana socket.io bukan modul terbina dalam penyemak imbas dan perlu dirujuk secara berasingan Kod dalaman fail js ==>
socket.io.js
kod 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()
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!