资讯专栏INFORMATION COLUMN

node.js 用socket实现聊天

stdying / 1129人阅读

摘要:用实现聊天服务器搭建创建一个服务监听服务端口服务端已经启动请访问客户端服务搭建与服务端通信我们要建立服务端请求连接断开连接客户端建立连接客户端向服务端发送请求触发事件接收客户端的信息将服务端的数据广播到客户端去客户端接收服务

node.js 用socket实现聊天 服务器搭建

app.js

</>复制代码

  1. const http = require("http");
  2. const express = require("./express");
  3. //创建一个服务
  4. const server = http.createServer(express);
  5. //监听服务端口
  6. server.listen(8001,()=>{
  7. console.log("服务端已经启动,请访问 http://localhost:8001");
  8. });

express.js

</>复制代码

  1. const url=require("url");
  2. const fs=require("fs");
  3. function express(req,res){
  4. var urlObj=url.parse(req.url);
  5. //console.log(urlObj);
  6. var filePath="./www"+urlObj.pathname;
  7. var content="not found";
  8. if(fs.existsSync(filePath)){
  9. content=fs.readFileSync(filePath);
  10. }
  11. res.end(content.toString());
  12. }
  13. module.exports=express;

index.html

</>复制代码

  1. <span class="hljs-selector-tag">Socket</span><span class="hljs-selector-class">.IO</span> <span class="hljs-selector-tag">chat</span>
    客户端服务搭建与服务端通信

    我们要建立服务端socket请求连接

    </>复制代码

    1. io.on("connection", function(socket){
    2. console.log("a user connected");
    3. //断开连接
    4. socket.on("disconnect", function(){
    5. console.log("user disconnected");
    6. });
    7. });

    index.js

    </>复制代码

    1. //客户端建立连接
    2. var socket = io();
    客户端向服务端发送请求

    index.js

    </>复制代码

    1. $("form").submit(function(){
    2. //触发事件
    3. socket.emit("chat message", $("#m").val());
    4. $("#m").val("");
    5. return false;
    6. });

    app.js

    </>复制代码

    1. //接收客户端的信息
    2. socket.on("chat message", function(msg){
    3. console.log("message: " + msg);
    4. });

    将服务端的数据广播到客户端去

    </>复制代码

    1. socket.on("chat message", function(msg){
    2. console.log("message: " + msg);
    3. socket.broadcast.emit("clientE",msg);
    4. });

    客户端接收服务端广播出来的数据

    </>复制代码

    1. socket.on("clientE", function(msg){
    2. $("#messages").append($("
    3. ").text(msg));
    4. });

    文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

    转载请注明本文地址:https://www.ucloud.cn/yun/89072.html

    相关文章

    • 手把手教你撸一个网页聊天

      摘要:前端逻辑搞定之后,思考一下这个聊天室的交互是怎么实现的。在前端监听一个事件,这个事件的触发条件是成功和服务端建立连接。携带一个参数,即用户的输入。别人发送的消息现在就需要在前端建立一个响应服务端有新消息的监听事件了。 一些废话:) 最近在学校比较闲,终于有这么一块时间可以自由支配了,所以内心还是十分的酸爽舒畅的。当然了,罪恶的事情也是有的,比如已经连续一周没有吃早饭了,其实现在回头想想...

      nemo 评论0 收藏0
    • 手把手教你撸一个网页聊天

      摘要:前端逻辑搞定之后,思考一下这个聊天室的交互是怎么实现的。在前端监听一个事件,这个事件的触发条件是成功和服务端建立连接。携带一个参数,即用户的输入。别人发送的消息现在就需要在前端建立一个响应服务端有新消息的监听事件了。 一些废话:) 最近在学校比较闲,终于有这么一块时间可以自由支配了,所以内心还是十分的酸爽舒畅的。当然了,罪恶的事情也是有的,比如已经连续一周没有吃早饭了,其实现在回头想想...

      leiyi 评论0 收藏0
    • 零基础搭建网页聊天室(socket.io使教程)

      摘要:本文实际为翻译官方教程开始吧,我们做个聊天应用在这个教程里,我们将制作一个简单的网页聊天应用。它机会不要求你有任何关于或的基础,所以这份教程适合任何水平的开发者。介绍曾经写一个网页聊天应用可能会用到网页工具套件,那时候非常困难。 本文实际为翻译Socket.io官方教程——《Get Started: Chat application》 开始吧,我们做个聊天应用! 在这个教程里,我们将制...

      madthumb 评论0 收藏0
    • socket.io+express实现聊天室的思考(一)

      摘要:但是需要注意的一点是协议是建立在协议基础之上的,需要经过一次握手。所以连接的发起方仍是客户端。是一个简洁而灵活的应用框架提供一系列强大特性帮助你创建各种应用。这也是为什么要采用协议来实现聊天室的原因。 从开始写到完善差不多断断续续差不多半个月时间,虽然还没有打到想要的效果但还是阶段性总结一下。(下一步加入打算视频通讯功能)本文默认你已掌握 node 相关基础知识 GitHub地址:ht...

      fjcgreat 评论0 收藏0
    • node技术栈 - 收藏集 - 掘金

      摘要:异步最佳实践避免回调地狱前端掘金本文涵盖了处理异步操作的一些工具和技术和异步函数。 Nodejs 连接各种数据库集合例子 - 后端 - 掘金Cassandra Module: cassandra-driver Installation ... 编写 Node.js Rest API 的 10 个最佳实践 - 前端 - 掘金全文共 6953 字,读完需 8 分钟,速读需 2 分钟。翻译自...

      王伟廷 评论0 收藏0

    发表评论

    0条评论

    stdying

    |高级讲师

    TA的文章

    阅读更多
    最新活动
    阅读需要支付1元查看
    <