基础学习:

前端最基础的就是 HTML , CSS 和 JavaScript 。

网页设计:HTML和CSS基础知识的学习

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。

动态交互:JavaScript基础的学习

JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。

var io = require(‘socket.io’).listen(http);
var fs = require(‘fs’);


创建用户列表和消息列表:



var person = [];
var history = [];


绑定并监听80端口:



app.get(‘/’,function (req,res) {
res.sendFile(__dirname + ‘/login.html’);
});

http.listen(80,function () {
console.log(‘listening on *:80’);
});


客户端连接成功后,触发响应事件connection,完成要绑定的事件并实现客户端出发的事件:



io.sockets.on(‘connection’,function (socket) {
var user = ‘’;

socket.emit('history', history);
io.sockets.emit('updatePerson', person); 

socket.on('sendMsg', function (data) {
    var obj = {};
    obj.content = data;
    obj.time = now();
    obj.name = user;
    if (history.length === history_num) {
        history.shift();
    }
    history.push(obj);
    io.sockets.emit('news', obj);
});

socket.on('setUserName', function (data) {
    user = data;
    person.push(user);
    io.sockets.emit('loginsucess');
    io.sockets.emit('updatePerson', person);
    io.sockets.emit('news', {content: user + '进入房间', time: now(), name: '系统消息'});
});

socket.on('disconnect', function () {
    if (user !== '') {
        person.forEach(function (value, index) {
            if (value === user) {
                person.splice(index, 1);
            }
        });
        io.sockets.emit('news', {content: user + '离开房间', time: now(), name: '系统消息'});
        io.sockets.emit('updatePerson', person);
    }
});

});


#### 客户端 index.js:


先初始化用户信息:



$scope.data = []; //消息队列
$scope.name = ‘’; //用户名
$scope.content = ‘’; //用户输入的消息
$scope.personlist = []; //用户队列


然后连接服务器端:



const socket_url = ‘http://localhost’;
var socket = io.connect(socket_url);


连接成功后,对用户昵称输入的验证:



KaTeX parse error: Expected '}', got 'EOF' at end of input: …on () { if(scope.name!==‘’){
if(KaTeX parse error: Expected '}', got 'EOF' at end of input: … if(scope.personlist.indexOf($scope.name)>-1) {
document.getElementById(“info”).textContent = “该昵称已被占用,请重新输入”;
}
else{
socket.emit(‘setUserName’, $scope.name);
}
}
else{
socket.emit(‘setUserName’, $scope.name);
}
}

打开全栈工匠技能包-1小时轻松掌握SSR

两小时精通jq+bs插件开发

生产环境下如歌部署Node.js

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

网易内部VUE自定义插件库NPM集成

谁说前端不用懂安全,XSS跨站脚本的危害

webpack的loader到底是什么样的?两小时带你写一个自己loader

的?两小时带你写一个自己loader

Logo

快速构建 Web 应用程序

更多推荐