初步使用socket.io.js

1.安装node.js

百度下载node.js安装文件,然后安装

2.创建项目

在这里插入图片描述

3.创建cmd进到项目里拉插件

在这里插入图片描述
拉插件

npm install socket.io
npm install express

4.粘贴代码

service.js:

var http = require("http");
var express = require("express"); //引入express
var socketIo = require("socket.io"); //引入socket.io


var app = new express();
var server = http.createServer(app);
var io = new socketIo(server); //将socket.io注入express模块



app.use(express.static(__dirname));
//客户端 1 的访问地址
app.get("/client1", function (req, res, next) {
    res.sendFile(__dirname + "/html/client1.html");
});
//客户端 2 的访问地址
app.get("/client2", function (req, res, next) {
    res.sendFile(__dirname + "/html/client2.html");
});


server.listen(9000); //express 监听 9000 端口,因为本机80端口已被暂用
//每个客户端socket连接时都会触发 connection 事件
io.on("connection", function (clientSocket) {
    // socket.io 使用 emit(eventname,data) 发送消息,使用on(eventname,callback)监听消息
    //监听客户端发送的 sendMsg 事件
    clientSocket.on("sendMsg", function (data) {
        // data 为客户端发送的消息,可以是 字符串,json对象或buffer
        // 使用 emit 发送消息,broadcast 表示 除自己以外的所有已连接的socket客户端。
        clientSocket.broadcast.emit("receiveMsg", data);
    })
});

client1.html:

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

<head>
    <meta charset="UTF-8">
    <title>客户端1</title>
</head>

<body>
    <label>聊天内容:</label><br />
    <textarea id="content" style="height: 200px; width:300px;"></textarea>
    <br />
    <input id="sendMsg" type="text" />
    <button id="btn_send">发送</button>

    <!-- 首先引入 socket.io 客户端脚本,这个地方拉的是服务端的,不是静态资源哦,这里很重要-->
    <script src="/socket.io/socket.io.js"></script>
    <script type="text/javascript">
        var socket = io.connect(); //连接服务端,因为本机使用localhost 所以connect(url)中url可以不填或写 http://localhost
        // 监听 receiveMsg 事件,用来接收其他客户端推送的消息
        socket.on("receiveMsg", function (data) {
            content.value += data.client + ":" + data.msg + "\r\n";
        });
        var content = document.getElementById("content");
        var sendMsg = document.getElementById("sendMsg");
        var btn_send = document.getElementById("btn_send");
        btn_send.addEventListener("click", function () {
            var data = {
                client: "客户端1",//客户端名称
                msg: sendMsg.value
            };
            //给服务端发送 sendMsg事件名的消息
            socket.emit("sendMsg", data);
            content.value += data.client + ":" + data.msg + "\r\n";
            sendMsg.value = "";
        });
    </script>

</body>

</html>

client2.html:

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

<head>
    <meta charset="UTF-8">
    <title>客户端2</title>
</head>

<body>
    <label>聊天内容:</label><br />
    <textarea id="content" style="height: 200px; width:300px;"></textarea>
    <br />
    <input id="sendMsg" type="text" />
    <button id="btn_send">发送</button>

    <!-- 首先引入 socket.io 客户端脚本-->
    <script src="/socket.io/socket.io.js"></script>
    <script type="text/javascript">
        var socket = io.connect(); //连接服务端,因为本机使用localhost 所以connect(url)中url可以不填或写 http://localhost
        // 监听 receiveMsg 事件,用来接收其他客户端推送的消息
        socket.on("receiveMsg", function (data) {
            content.value += data.client + ":" + data.msg + "\r\n";
        });
        var content = document.getElementById("content");
        var sendMsg = document.getElementById("sendMsg");
        var btn_send = document.getElementById("btn_send");
        btn_send.addEventListener("click", function () {
            var data = {
                client: "客户端2",
                msg: sendMsg.value
            };
            //给服务端发送 sendMsg事件名的消息
            socket.emit("sendMsg", data);
            content.value += data.client + ":" + data.msg + "\r\n";
            sendMsg.value = "";
        });
    </script>

</body>

</html>

5.注意事项

1.注意静态资源访问路径

参考文章:https://www.cnblogs.com/limitcode/p/7845168.html

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值