


Eine kurze Analyse der ordnungsgemäßen Verwendung des Socket.IO-Moduls im Knoten
Wie verwende ich das Socket.IO-Modul in
node? Der folgende Artikel stellt Ihnen vor, wie Sie das Socket.IO-Modul elegant in node.js verwenden. Ich hoffe, er wird Ihnen hilfreich sein!
Definition von Socket.IO
Socket.IO ist eine WebSocket-Bibliothek
, einschließlich clientseitiger js
und serverseitiger node .js
, dessen Ziel es ist, Echtzeitanwendungen zu erstellen, die auf verschiedenen Browsern und Mobilgeräten verwendet werden können. [Verwandte Tutorial-Empfehlungen: WebSocket库
,包括了客户端的js
和服务器端的node.js
,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。【相关教程推荐:nodejs视频教程】
Socket.IO将WebSocket、AJAX和其它的通信方式
全部封装成了统一的通信接口
,也就是说,我们在使用SocketIO时,不用担心兼容问题,底层会自动选用最佳的通信方式
。
Socket.IO的优点
socket.io封装了服务端和客户端,使用起来非常简单方便。
socket.io支持跨平台,这就意味着你有了更多的选择,可以在自己喜欢的平台下开发实时应用。
socket.io可以自定义事件发送到对端,对端可以是服务器,可以是客户端;
使用emit发送,接收还是on
。它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用,非常方便和人性化,而且支持的浏览器最低达IE5.5。如果不支持websocket,可以自动降级为
轮询
node中安装Socket.IO
打开终端,在终端中输入以下代码即可安装Socket.IO模块:
npm i socket.io
node中使用Socket.IO
emit
和 on
是最重要的两个api,分别对应 发送
和 监听
事件.
我们可以非常自由的在服务端
定义并发送一个事件emit
,然后在客户端
监听 on
,反过来也一样。
发送的内容格式
也非常自由,既可以是基本数据类型 Number,String,Boolean 等,也可以是 Object,Array 类型,甚至还可以是函数
。而用回调函数的方式则可以进行更便携的交互。
socket.emit(eventName[, ...args])
:发射(触发)一个事件
socket.emit('aaa','你好,前台')
在这里以
服务端
为例子:在服务端中通过socket.emit()
方法创立一个事件(第一个参数:自定义事件
)aaa
,发送的信息(第二个参数
)你好,前台
.
注意: 第二个参数可以传
对象
,因为在emit方法内部
带有JSON.stringfy()
方法,自动将对象转化为字符串。
socket.on(eventName, callback)
:监听一个 emit 发射的事件
socket.on('aaa',(msg)=>{ console.log(msg) })
在这里以
客户端
为例,客户端监听服务端的事件aaa
,随后通过回调函数的方式打印出aaa
传过来的信息。
服务端
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);
将
server
当作参数传入,目的在于说明io
挂载的服务依旧是基于http
的。
这里的代码表示,只要连接成功,就会打印连接成功的信息!
客户端
<script src="/socket.io/socket.io.js"></script> <script> const socket = io(); //默认连接服务端启动的本地端口地址 socket.emit("message","你好 后台") // 监听服务端的广播事件,接收广播的消息 socket.on("allMsg",(msg)=>{ console.log(msg) //广播 : 欢迎来到聊天室 }) </script>
在客户端需要单独引用
]🎜🎜Socket.IO kapseltsocket.io.js
文件,因为socket.io不是浏览器内置模块,需要单独引用,js文件内部代码 ==> socket.io.js内部代码,将这里的代码复制到自己创建的js文件中,然后在客户端中引用。
只要在客户端中出现const socket = io()
nodejs-Video-TutorialWebSocket, AJAX und andere Kommunikationsmethoden
in eineeinheitliche Kommunikationsschnittstelle
, das heißt, wenn wir Wenn wir SocketIO verwenden,müssen wir uns keine Gedanken über Kompatibilitätsprobleme machen, die unterste Ebene wählt automatisch die beste Kommunikationsmethode aus
. 🎜
🎜🎜🎜Vorteile von Socket.IO🎜🎜
- 🎜socket.io kapselt den Server und die Der Client ist sehr einfach und bequem zu bedienen. 🎜
- 🎜socket.io unterstützt plattformübergreifend, was bedeutet, dass Sie mehr Möglichkeiten haben, Echtzeitanwendungen auf Ihrer bevorzugten Plattform zu entwickeln. 🎜
- 🎜socket.io kann Ereignisse so anpassen, dass sie an den Peer gesendet werden, der ein Server oder ein Client sein kann;
verwenden Sie emit zum Senden, Empfangen oder Einschalten
. 🎜- 🎜Es wählt automatisch die beste Methode zur Implementierung von Echtzeit-Netzwerkanwendungen basierend auf dem Browser von WebSocket, AJAX Long Polling, Iframe-Streaming usw. aus. Es ist sehr praktisch und benutzerfreundlich und unterstützt Der erforderliche Mindestbrowser ist IE5.5. Wenn WebSocket nicht unterstützt wird, kann es automatisch auf
Polling
heruntergestuft werden Geben Sie im Terminal den folgenden Code ein, um das Socket.IO-Modul zu installieren:🎜rrreee
🎜🎜🎜Verwenden Sie Socket.IO im Knoten🎜🎜🎜emit code> und on
sind die beiden wichtigsten APIs, die den Ereignissensending
bzw.listen
entsprechen. 🎜🎜Wir können bei serverDefinieren undsenden Sie ein Ereignis, das ausgegeben wird
, und hören Sie dannan
auf demClient
und umgekehrt. 🎜🎜Das gesendeteInhaltsformat
ist ebenfalls sehr frei.kann grundlegende Datentypen wie Zahl, Zeichenfolge, Boolescher Wert usw. oder ein Objekt, ein Array-Typ oder sogar eine Funktion sein
. Die Verwendung von Rückruffunktionen ermöglicht eine tragbarere Interaktion. 🎜🎜🎜🎜emit🎜🎜🎜socket.emit(eventName[, ...args]):<code>Emit (trigger) an event
🎜rrreee🎜Hier nehmen wirserver
als Beispiel: Übergeben Sie im Serversocket.emit( )
-Methode erstellt ein Ereignis (Erster Parameter: benutzerdefiniertes Ereignis
)aaa
, sendet Informationen (Zweiter Parameter
)Hallo, Rezeption
.🎜🎜🎜Hinweis: 🎜 Der zweite Parameter kann als🎜🎜🎜on🎜🎜🎜object
übergeben werden, da innerhalb deremit method
Mit demJSON.stringfy()
-Methode verwendet, konvertiert sie Objekte automatisch in Strings. 🎜socket.on(eventName, callback) span> code>: <code>Ereignisse abhören, die von einem emit ausgegeben werden
🎜rrreee🎜Hier nehmen wirclient
als Beispiel. Der Client lauscht auf Ereignisse auf dem Serveraaa
und geben Sie dann die vonaaa
über die Rückruffunktion übergebenen Informationen aus. 🎜
🎜🎜🎜Eingeführt und verwendet in Express🎜🎜🎜🎜Server🎜
rrreee🎜Übergeben Sieserver
als Parameter, um anzuzeigen, dass der vonio
bereitgestellte Dienst immer noch verfügbar ist basierend aufhttp
.
Der Code hier zeigt an, dass die Verbindungserfolgsmeldung gedruckt wird, solange die Verbindung erfolgreich ist! 🎜
🎜🎜Client🎜
rrreee🎜Aufsocket.io.js
muss separat verwiesen werden der Client-Code>-Datei, da socket.io kein integriertes Modul des Browsers ist und separat referenziert werden muss, der interne Code der js-Datei ==> socket.io. js interner Code 🎜, kopieren Sie den Code hier in die von Ihnen erstellte js-Datei und verweisen Sie dann im Client darauf.
Solangeconst socket = io()
im Client angezeigt wird, stellt der Browser standardmäßig eine direkte Verbindung zur lokalen Dienstadresse her, die vom Client gestartet wird. 🎜
Zusammenfassung
socket.io Dieses Drittanbietermodul ist relativ bequemer und effizienter beim Schreiben von Code im
ws
模块中通过switch
分支来进行对不同的聊天类型
进行不同的方法呈现,而在socket.io
模块中仅仅通过自定义事件
就可以解决这个问题,并且socket.io可以在服务器断开后,当你再次进入客户端后可以自动连接,整体的表现优于ws
-Modul.Weitere Informationen zu Knoten finden Sie unter: nodejs-Tutorial!
Das obige ist der detaillierte Inhalt vonEine kurze Analyse der ordnungsgemäßen Verwendung des Socket.IO-Moduls im Knoten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie gehe ich mit dem Datei-Upload um? Der folgende Artikel stellt Ihnen vor, wie Sie Express zum Hochladen von Dateien im Knotenprojekt verwenden. Ich hoffe, er ist hilfreich für Sie!

So löschen Sie einen Knoten mit nvm: 1. Laden Sie „nvm-setup.zip“ herunter und installieren Sie es auf dem Laufwerk C. 2. Konfigurieren Sie Umgebungsvariablen und überprüfen Sie die Versionsnummer mit dem Befehl „nvm -v“. install“-Befehl Knoten installieren; 4. Löschen Sie den installierten Knoten über den Befehl „nvm uninstall“.

In diesem Artikel stellen wir Ihnen das Prozessmanagement-Tool „pm2“ von Node vor und sprechen darüber, warum PM2 benötigt wird und wie Sie PM2 installieren und verwenden. Ich hoffe, dass es für alle hilfreich ist!

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

Wie packe ich die ausführbare Datei von nodejs mit pkg? Im folgenden Artikel erfahren Sie, wie Sie mit pkg ein Node-Projekt in eine ausführbare Datei packen. Ich hoffe, dass er Ihnen weiterhilft!

npm node gyp schlägt fehl, weil „node-gyp.js“ nicht mit der Version von „Node.js“ übereinstimmt. Die Lösung ist: 1. Löschen Sie den Knotencache über „npm cache clean -f“ 2. Über „npm install -“ g n“ Installieren Sie das n-Modul. 3. Installieren Sie die Version „node v12.21.0“ über den Befehl „n v12.21.0“.

Die Authentifizierung ist einer der wichtigsten Teile jeder Webanwendung. In diesem Tutorial werden tokenbasierte Authentifizierungssysteme und ihre Unterschiede zu herkömmlichen Anmeldesystemen erläutert. Am Ende dieses Tutorials sehen Sie eine voll funktionsfähige Demo, die in Angular und Node.js geschrieben wurde. Traditionelle Authentifizierungssysteme Bevor wir zu tokenbasierten Authentifizierungssystemen übergehen, werfen wir einen Blick auf traditionelle Authentifizierungssysteme. Der Benutzer gibt seinen Benutzernamen und sein Passwort im Anmeldeformular ein und klickt auf „Anmelden“. Nachdem Sie die Anfrage gestellt haben, authentifizieren Sie den Benutzer im Backend, indem Sie die Datenbank abfragen. Wenn die Anfrage gültig ist, wird eine Sitzung mit den aus der Datenbank erhaltenen Benutzerinformationen erstellt und die Sitzungsinformationen werden im Antwortheader zurückgegeben, sodass die Sitzungs-ID im Browser gespeichert wird. Bietet Zugriff auf Anwendungen, die unterliegen

Wie implementiert man OCR (optische Zeichenerkennung)? Der folgende Artikel stellt Ihnen vor, wie Sie Node zur Implementierung von OCR verwenden. Ich hoffe, er wird Ihnen hilfreich sein!
