Home  >  Article  >  Web Front-end  >  A brief analysis of how to use the Socket.IO module gracefully in node

A brief analysis of how to use the Socket.IO module gracefully in node

青灯夜游
青灯夜游forward
2022-11-22 19:53:141480browse

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!

A brief analysis of how to use the Socket.IO module gracefully in node

The definition of Socket.IO

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 .


Advantages of Socket.IO

  • 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

##Install Socket.IO in node

Open the terminal and enter the following code in the terminal to install the Socket.IO module:

npm i socket.io

Use Socket.IO in node

emit and on are the two most important APIs, corresponding to sending and listening events respectively.

We can freely define and

send an event emit on the server , and then listen on on the client , and vice versa. Same thing.

The sent

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

##socket.emit(eventName[, ...args])

Emit (trigger) an event<pre class="brush:php;toolbar:false">socket.emit('aaa','你好,前台')</pre>

Here we take the
server

as 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 methodWith JSON.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 client
as an example. The client listens to events on the server

aaa, and then Print out the information passed by aaa through the callback function.


Introduced using

in express The server
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

server
as a parameter to indicate that the service mounted by

io is still based on http of. The code here indicates that as long as the connection is successful, the connection success information will be printed!


Client
<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

socket.io.js
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 для представления разных типов чата разными способами, а в модуле

socket.io

эту проблему можно решить просто с помощью 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!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete