Home > Article > Web Front-end > A brief analysis of how to use the Socket.IO module gracefully in node
How to use the Socket.IO module in
node? The following article will introduce to you how to use the Socket.IO module elegantly in node.js. I hope it will be helpful to you!
Socket.IO is a WebSocket library
, including client-side js
and server-side node.js
, its goal is to build real-time applications that can be used on different browsers and mobile devices. [Related tutorial recommendations: nodejs video tutorial]
Socket.IO encapsulates WebSocket, AJAX and other communication methods
into a unified communication interface
, that is to say, when we use SocketIO, don't have to worry about compatibility issues, the bottom layer will automatically select the best communication method
.
socket.io encapsulates the server and client, using It is very simple and convenient to use.
socket.io supports cross-platform, which means you have more choices to develop real-time applications on your favorite platform.
socket.io can customize events to be sent to the peer, which can be a server or a client; use emit to send, receive or on
.
It will automatically select the best way to implement real-time network applications based on the browser from WebSocket, AJAX long polling, Iframe streaming, etc., which is very convenient and user-friendly , and the minimum supported browser is IE5.5. If websocket is not supported, it can be automatically downgraded to Polling
npm i socket.io
emit and
on are the two most important APIs, corresponding to
sending and
listening events respectively.
send an event emit on the
server , and then listen
on on the
client , and vice versa. Same thing.
content format is also very free,
can be basic data types Number, String, Boolean, etc., or it can be Object, Array type, or even a function. Using callback functions allows for more portable interaction.
:Emit (trigger) an event
<pre class="brush:php;toolbar:false">socket.emit('aaa','你好,前台')</pre>
serveras an example: pass
socket.emit() in the server
Method to create an event (First parameter: custom event
)aaa
, send information (Second parameter
)you Okay, front desk
.
Note:The second parameter can be passed as object, because it is inside the
emit method
WithJSON.stringfy()
method, automatically convert the object into a string.
on##socket.on(eventName, callback)
:Listen to an event emitted by emit
socket.on('aaa',(msg)=>{ console.log(msg) })
Here we take clientas an example. The client listens to events on the serveraaa
, and then Print out the information passed by
aaathrough the callback function.
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);passes
as a parameter to indicate that the service mounted byio
is still based on
httpof.
The code here indicates that as long as the connection is successful, the connection success information will be printed!
<script src="/socket.io/socket.io.js"></script> <script> const socket = io(); //默认连接服务端启动的本地端口地址 socket.emit("message","你好 后台") // 监听服务端的广播事件,接收广播的消息 socket.on("allMsg",(msg)=>{ console.log(msg) //广播 : 欢迎来到聊天室 }) </script>Needs to be referenced separately on the client
file, because socket.io is not a built-in module of the browser and needs to be referenced separately, js file internal code ==>socket.io.js internal code
, copy the code here to the one you created js file and then referenced in the client.
As long as const socket = io() appears in the client, the browser will directly connect to the local service address started by the client by default.
. Условно говоря, сторонний модуль Socket.io более удобен и эффективен при написании кода. Модуль ##ws
использует ветку switch
для представления разных типов чата
разными способами, а в модуле
эту проблему можно решить просто с помощью custom event, и Socket.io может автоматически подключаться после отключения сервера при повторном входе в клиент, а общая производительность лучше, чем
ws## #module. ######Для получения дополнительной информации об узлах посетите: ###nodejs учебник###! ###The above is the detailed content of A brief analysis of how to use the Socket.IO module gracefully in node. For more information, please follow other related articles on the PHP Chinese website!