回归前端学习第22天-实现俄罗斯方块小游戏4(socket.io实现简易聊天室+gitignore配置)

用socket.io写实现简易聊天室,可以直接发送一个对象,不用websoket那样,先建立对象,再转换字符串了;还可以自定义事件,即不用像websocket一样去定义type

socket.io安装及聊天室的实现

官网地址https://www.socket.io
从网站上可以学些基础语法,并下载script标签内容

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>

同样需要先安装socket

npm install socket.io

然后将下载的 socket.io.js保存到本地,并在html中引入

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>俄罗斯方块2</title>
  <script src="socket.io.js"></script>
  <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script> -->
</head>

<body>
  <h1>聊天室——Websocket</h1>
  <input type="text" id="sendTxt" />
  <button id="sendb">发送</button>
  <script type="text/javascript">
    var socket = io('ws://localhost:3000')

    // 添加div到页面
    function showMessage(str, type) {
      var div = document.createElement("div");
      div.innerHTML = str;

      if (type == "enter") {
        div.style.color = "blue";
      } else if (type == "leave") {
        div.style.color = "red";
      }
      document.body.appendChild(div);
    }

    document.getElementById("sendb").onclick = function () {
      var txt = document.getElementById("sendTxt").value;
      if (txt) {
        socket.emit('message', txt);
      }
      // document.getElementById("recv").innerHTML = "Connected";
      //  innerHTML 可以 获取 也可以 插入  //
    };
    socket.on('enter', function (data) {
      showMessage(data, 'enter')
    })
    socket.on('message', function (data) {
      showMessage(data, 'message')
    })
    socket.on('leave', function (data) {
      showMessage(data, 'leave')
    })
  </script>
</body>

</html>

JS部分也变得十分的简洁

var app = require('http').createServer();
// 用socket封装app
var io = require('socket.io')(app);
var PORT = 3000;
var clientCount = 0;
app.listen(PORT);

io.on('connection', function (socket) {
  // 连接上客户端之后
  clientCount++;
  socket.nickname = "user" + clientCount;
  io.emit('enter', socket.nickname + "进入聊天室")

  socket.on('message', function (str) {
    io.emit('message', socket.nickname + '说:' + str)
  })

  socket.on('disconnect', function () {
    io.emit('leave', socket.nickname + '离开聊天室')
  })

})

console.log("websocket server listening on port" + PORT);

完工!!!
在这里插入图片描述

配置gitignore,忽略一些不需要的文件的推送

1.对应文件夹下创建一个.gitignore文件
2.在创建的.gitignore文件中建立规则,去忽略一些不需要的文件的推送
规则如下:
bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 忽略根目录下的bin文件
/.c: 忽略 cat.c,不忽略 build/cat.c
debug/
.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
/foo: 忽略/foo, a/foo, a/b/foo等
a/
/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略当前路径的 config.php 文件
当.gitignore配置无效的时候,可能是因为:
1.命令的格式错了
2.在gitignore配置文件里加入了空格、tab、注释等,导致语句失效
3.配置语句对add commit文件无效,即文件已经被追踪过了,而新建的gitignore只可以追踪没有被追踪过的文件,则此时需要删除本地的缓存,再重新追踪,即

git rm -r --cache .
git add .
git commit -m'配置gitignore'
git push
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值