做一个自己的聊天室,找个女朋友聊天

148 阅读2分钟

「这是我参与2022首次更文挑战的第36天,活动详情查看:2022首次更文挑战」

socket.io模块

  • 首先io.sockets.on函数接受字符串"connection"作为客户端发起连接的事件,当连接成功后,调用带有socket参数的回调函数。我们在使用socket.IO的时候,基本上都在这个回调函数里面处理用户的请求。
  • socket中最重要的两个方法是emit和on方法。 说白了就是发送和接收的方法。在服务端socket.emit就是想客户端发送数据,socket.on就是接收客户端返回的数据。在客户端恰恰相反。
 io.on('connection', function(socket) {}
  • nodejs主要通过socket来实现服务端和客户端的通信

程序创建

  • 引入required模块
 var express = require('express');
 var app = express();
 var http = require('http').Server(app);
  • 创建监听端口
 http.listen(8000, function() {
 console.log('Server running at http://127.0.0.1:8000/');
 });
  • 以上代码我们完成了一个可以工作的 HTTP 服务器。使用 node 命令执行以上的代码:(***就是我们上面代码保存的文件名)
 node ****.js

这里写图片描述

express模块

 var express = require('express');
 var app = express();
 var http = require('http').Server(app);
 http.listen(8000, function() {
 console.log('Server running at http://127.0.0.1:8000/');
 });
  • 这样我们的8000端口就开启这个服务了。下面我们通过socket.io模块实现服务于客户端的交互。

其他API

  • 向所有客户端广播:socket.broadcast.emit('broadcast message');

我们可以通过他实现群内公告等功能。

  • 进入一个房间(非常好用!相当于一个命名空间,可以对一个特定的房间广播而不影响在其他房间或不在房间的客户端):socket.join('your room name');
  • 向一个房间广播消息(发送者收不到消息):socket.broadcast.to('your room name').emit('broadcast room message');
  • 向一个房间广播消息(包括发送者都能收到消息)(这个API属于io.sockets):io.sockets.in('another room name').emit('broadcast room message');
  • 强制使用WebSocket通信:(客户端)socket.send('hi'),(服务器)用socket.on('message', function(data){})来接收。