从零开始搭建 web 聊天室(一)

从零开始搭建 web 聊天室(一)本篇将介绍如何快速、简便地使用socket.io库搭建一个web在线聊天室。前端并没有使用任何框架。后端使用express框架搭建简易的后端。socket.io库本质上是基于websocket上进行封装。改变了以往只能前端发送请求,后端才能返回给前端信息,这样的一问一答形式。实现了前后端双向通信,即后端也可以主动push信息到前端。websocket尤其适用于在线聊天或者实时交互的场景。已经广泛用于直播平台、视频平台等。本篇实现:最基本的前后端信息交互。代码地址:https

大家好,又见面了,我是你们的朋友全栈君。

本篇将介绍如何快速、简便地使用 socket.io 库搭建一个 web 在线聊天室。前端并没有使用任何框架。后端使用 express 框架搭建简易的后端。

socket.io 库本质上是基于 websocket 上进行封装。改变了以往只能前端发送请求,后端才能返回给前端信息,这样的一问一答形式。实现了前后端双向通信,即后端也可以主动 push 信息到前端。websocket 尤其适用于在线聊天或者实时交互的场景。已经广泛用于直播平台、视频平台等。

本篇实现:

最基本的前后端信息交互。

代码地址:

https://github.com/billmian/socketio-chat

技术栈:

  • 前端 html + socketio
  • 后端 express 框架

首先先创建 index.html 和 index.js 两个文件

index.html 文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script src="/socket.io/socket.io.js"></script>
  <script>
    var socket = io();
    socket.emit("newChatMessage", "这是传送给后端的消息");

    socket.on("broadCastMessage", (msg) => { 
   
      console.log("这里输出后端返回的消息", msg);
      renderContent(msg);
    });
  </script>
</html>

index.js 文件中:
先使用 npm 安装库 socket.io express

npm install socket.io  express --save
var express = require("express");
var app = express();
var http = require("http").createServer(app);

var io = require("socket.io")(http);
app.get("/", (req, res) => { 
   
  res.sendFile(__dirname + "/index.html");
});

io.on("connection", (socket) => { 
   
  socket.on("newChatMessage", (msg) => { 
   
    console.log("message: " + msg);
    io.emit("broadCastMessage", "后端传过来的消息");
  });
});
http.listen(3000, () => { 
   
  console.log("listening on *:3000");
});

然后在文件目录下运行

node index.js

然后在浏览器中打开 http://localhost:3000
然后使用 F12 打开控制台可以看到

在这里插入图片描述
前端已经输出了后端传过来的消息

再回到运行 nodejs 的终端
在这里插入图片描述
可以看到后端也接受到了前端传来的消息。

至此我们实现了使用 socketio 进行了前后端的 websocket 的交互。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152202.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • SQL学习规划

    SQL学习规划知乎话题:如何学习SQL语言?赵立新和猴子的回答挺好的! 

  • java单元测试覆盖率_android单元测试覆盖率

    java单元测试覆盖率_android单元测试覆盖率一、简介之所以叫温故而知新,是因为将这两个工具结合起来作为单元测试工具的想法在上一个项目中应用了,好像还没有人将这两种工具结合使用,或者没有写成博客供大家参考,现在重新温习下将想法写下来。gtest单元测试工具接触过的人都很熟悉了,它是一款google提供的强大的测试框架,测试案例的编写也比较简单,gtest案例的编写可以参考系列博文:http://www.cn…

  • Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】「建议收藏」

    Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】「建议收藏」本文章是Unity零基础到入门专栏的系列文章。适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习!本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefs、XML、JSON

  • c# combobox属性dropdownlist赋值

    c# combobox属性dropdownlist赋值combobox属性设置为dropdownlist后,text赋值如果combobox的内容里有则显示,没有则不显示。 即如果combobox1包含ABCD,赋值A则可以显示,F则不行。

    2022年10月10日
  • Django(54)drf视图家族「建议收藏」

    Django(54)drf视图家族「建议收藏」视图家族drf的视图总共分为以下4个,对应4个源码文件views:视图类generics:工具视图mixins:视图工具集viewsets:视图集学习曲线我们学习视图,可以按照以下的曲线

  • xshell7安装步骤_快影下载安装

    xshell7安装步骤_快影下载安装文章目录第一部分下载第一步去官方下载界面第二步填写正确的手机号和密码,之后会有一个下载链接第二部分安装过程第一步双击exe文件,进入安装界面第二步接受统一许可证书第三步选择安装的路径第四步随便选一个图面的目录第五步进行安装界面,等待安全完成第三部分设置ssh配置连接第一步设置名称、主机、端口第二步设置链接方式,我选的账号和密码第三步选择接受密钥第四步成功链接主机摘抄第一部分下载第一步去官方下载界面https://www.xshellcn.com/xiazai.html

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号