socket.io
Posted mzjwx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket.io相关的知识,希望对你有一定的参考价值。
Socket.io
服务端(结合Express/Koa):
// Server import express from ‘express‘ import http from ‘http‘ import socketio from ‘socket.io‘ const app = express() const server = http.createServer(app) const io = socketio(server) server.listen(3000) io.on(‘connection‘, (socket)=>{ socket.emit(‘news‘, { hello: ‘world‘ }) socket.on(‘my other event‘, function (data) { console.log(data) }) })
客户端:
// Client <script src="http://localhost:3000/socket.io/socket.io.js"></script> <script> const socket = io.connect(‘http://localhost:3000‘) socket.on(‘news‘, (data)=>{ socket.emit(‘my other event‘, { my: ‘data‘ }) }) </script>
socket.io最核心的两个api就是emit
和 on
了 ,服务端和客户端都有这两个api。通过 emit
和 on
可以实现服务器与客户端之间的双向通信。emit
:发射一个事件,第一个参数为事件名,第二个参数为要发送的数据,第三个参数为回调函数(如需对方接受到信息后立即得到确认时,则需要用到回调函数)。on
:监听一个 emit 发射的事件,第一个参数为要监听的事件名,第二个参数为回调函数,用来接收对方发来的数据,该函数的第一个参数为接收的数据。
服务端常用API:socket.emit()
:向建立该连接的客户端发送消息socket.on()
:监听客户端发送信息io.to(socketid).emit()
:向指定客户端发送消息io.sockets.socket(socketid).emit()
:向指定客户端发送消息,新版本用io.sockets.socket[socketid].emit()
socket.broadcast.emit()
:向除去建立该连接的客户端的所有客户端广播io.sockets.emit()
:向所有客户端广播
客户端常用API:socket.emit()
:向服务端发送消息socket.on()
:监听服务端发来的信息
以上是关于socket.io的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 状态代码 200 但页面未加载 Node.js Socket.io -- 使用 Socket.io 的 Node.js 教程,Daniel Nill,fs.readFile(),socket