前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript与Node.js一起打造一款聊天App

JavaScript与Node.js一起打造一款聊天App

作者头像
马克社区
发布2022-06-20 17:20:50
2660
发布2022-06-20 17:20:50
举报
文章被收录于专栏:高端IT高端IT

聊天是我们人与人交流最直接的方式,互联网的加入使我们交流更加便捷。我们手机上的微信、QQ是我们手机必不可少的应用软件。那么,我们是否可以做一款聊天应用呢?

之前我自己闲着没事,研究过一些技术,做了一款即时通讯应用,下面我将选取几幅具有代表性的图片供大家参考。 一、应用示图

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

以上是这款应用的主要页面,功能可能相对简陋点,不过基本的功能已经实现了,下面我将给出核心代码,全部源码地址在文末。 二、部分核心源码

前台主要核心逻辑:

这里我只列举了js核心代码,查看完整代码可以去文末。

代码语言:javascript
复制
function sock() {
    return io.connect("http://localhost:3003"); // http环境下
}
// 心跳机制
document.addEventListener('visibilitychange', function () {
    if (document.visibilityState == 'hidden') {
        //记录页面隐藏时间
        sock()
        console.log('隐藏了')
    }
})
setInterval(() => {
    sock()
}, 10000);
var socket = sock()
var re = document.querySelector("#re");
var register1 = document.querySelector(".register");
var init = document.querySelector(".init");
var passr = document.querySelector("#passr");
var passl = document.querySelector("#passl");
var login1 = document.querySelector(".login");
var register_b = document.querySelector("#register_b");
var lo = document.querySelector("#lo");
var chat = document.querySelector("#chat");
var login_b = document.querySelector("#login_b");
var myMes = "";
var vf = "";
var na = "";
var p = "";
var we = "";
var div = "";
var v = "";
var q = 0;
var regCn = /[@:]/im;
var pattern = /^[\u4E00-\u9FA5]{1,5}$/;
// 同意
document.querySelector('.yes').onclick=function () {
    document.querySelector('.dark').style.display='none'
}
document.querySelector('.ys').onclick = function () {
    document.querySelector('.dark').style.display = 'block'
}
// 初始页面注册
document.querySelector("#reg").onclick = function () {
    register1.style.display = "block";
    init.style.display = "none";
    document.querySelector(".bg").style.display = "none";
}
// 初始页面登录
document.querySelector("#log").onclick = function () {
    login1.style.display = "block";
    init.style.display = "none";
    document.querySelector(".bg").style.display = "none";
}
// 登录按钮
login_b.onclick = function () {
    login();

}
// 注册按钮
register_b.onclick = function () {
    register();
}
//发送
document.getElementById("btn").onclick = function () {
    send();
};
// 内容填充
document.getElementById("text").onkeyup = function () {
    if (document.getElementById("text").value.length != 0) {
        document.getElementById("btn").style.cssText = "background:#98E165;color:#fff;"
    } else {
        document.getElementById("btn").style.cssText = "background: #DDDEE2;color:#fff"
    }
}
document.querySelector("#text").onclick = function () {
    document.querySelector('#text').scrollIntoView(false);
}
// 传名
var users2 = "";
socket.on('users', function (users) {
    users2 = users;
    //  console.log(users2);
});
// 传密码
var pass2 = ""
socket.on('pass', function (val) {
    pass2 = val;
    //  console.log(pass2)
});
// 统计在线人数
var arrh = []
socket.on('dataval', function (val) {
    vf = val;
    console.log(vf);

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/119882694

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
即时通信 IM
即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、关系链、消息漫游、群组管理、资料管理、直播弹幕和内容审核等能力。适用于直播互动、电商带货、客服咨询、社交沟通、在线课程、企业办公、互动游戏、医疗健康等场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档