2024年Web前端最全websocket实现简单聊天程序_若依聊天室(2),2024年最新程序员面试100题

前端框架

前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。

以 Vue 为例,我整理了如下的面试题。

Vue部分截图

如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

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);
}
}
else{
document.getElementById(‘name’).focus();
}
};


验证成功后,对用户输入消息要触发的事件:



$scope.sendMsg = function(data){
var date = new Date();
data = s c o p e . c o n t e n t ; i f ( scope.content; if( scope.content;if(scope.content !== ‘’){
socket.emit(‘sendMsg’,data);
}
$scope.content = ‘’;
};


##### 程序的部分运行测试结果:


浏览器输入localhost后展示的用户登录界面:


![这里写图片描述](https://img-blog.csdn.net/20170912165715344?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZndqOTE2ODg5Njcy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)


昵称重复后的提示:   
 ![这里写图片描述](https://img-blog.csdn.net/20170912165745463?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZndqOTE2ODg5Njcy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)


昵称输入成功后进入当前用户的聊天界面:   
 ![这里写图片描述](https://img-blog.csdn.net/20170912165811066?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZndqOTE2ODg5Njcy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)



### 前端框架

前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。



以 Vue 为例,我整理了如下的面试题。

![Vue部分截图](https://img-blog.csdnimg.cn/img_convert/c6738a80c94640db83f7ffbf487ac5f0.png)


**[如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**



  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java WebSocket是一种用于实现双向通信的网络协议,可以帮助我们实现简易聊天室。下面是一个基于Java WebSocket实现的简易聊天室的示例代码: 首先,我们需要定义一个WebSocket处理程序: ```java @ServerEndpoint("/chat") public class ChatEndpoint { private static Set<Session> sessions = Collections.synchronizedSet(new HashSet<Session>()); @OnOpen public void onOpen(Session session) { sessions.add(session); } @OnMessage public void onMessage(String message, Session session) throws IOException { for (Session s : sessions) { // 过滤自己 if (!s.equals(session)) { s.getBasicRemote().sendText(message); } } } @OnClose public void onClose(Session session) { sessions.remove(session); } } ``` 在这个处理程序中,我们使用`@ServerEndpoint("/chat")`注解指定了WebSocket的端点,即`/chat`。在`onOpen`方法中,我们将新的会话添加到会话集合中。在`onMessage`方法中,我们将接收到的消息广播给所有其他会话。在`onClose`方法中,我们将关闭的会话从会话集合中移除。 接下来,我们需要在`web.xml`文件中配置WebSocket: ```xml <web-app> <display-name>WebSocket Chat</display-name> <servlet> <servlet-name>chat</servlet-name> <servlet-class>org.glassfish.tyrus.servlet.TyrusServlet</servlet-class> <init-param> <param-name>org.glassfish.tyrus.servlet.websocketClassnames</param-name> <param-value>com.example.ChatEndpoint</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>chat</servlet-name> <url-pattern>/chat/*</url-pattern> </servlet-mapping> </web-app> ``` 在这个配置中,我们使用了`org.glassfish.tyrus.servlet.TyrusServlet`作为WebSocket的Servlet。我们将`com.example.ChatEndpoint`指定为WebSocket处理程序的类名,并将其加载到`servlet`中。 现在,我们就可以在HTML页面中使用WebSocket来连接我们的聊天室了: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>WebSocket Chat</title> </head> <body> <input type="text" id="message"> <button onclick="send()">Send</button> <div id="output"></div> <script> var socket = new WebSocket('ws://localhost:8080/chat'); socket.onmessage = function (event) { var output = document.getElementById('output'); output.innerHTML += event.data + '<br>'; }; function send() { var message = document.getElementById('message').value; socket.send(message); } </script> </body> </html> ``` 在这个HTML页面中,我们创建了一个WebSocket连接到`ws://localhost:8080/chat`。当收到消息时,我们将其添加到页面上的`<div>`元素中。当点击发送按钮时,我们将输入框中的文本发送到WebSocket连接中。 这样,我们就完成了一个简易的Java WebSocket聊天室实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值