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

我应该在哪里为 socket.io 编写客户端代码?

socket.io客户端API

Node.js Websockets Socket.IO

需要帮助理解 Socket.io(node.js) 中的以下 jQuery 代码?

一次与两个用户随机聊天(Socket.io)