创建并运行一个websocket文件即时通讯的web项目

本文档详细介绍了如何使用myeclipse 2014创建一个支持websocket即时通讯的Web项目,包括文件传输功能。首先新建Java Web工程,配置websocket支持,然后编写后台代码(ChatWebSocket.java、SocketServer.java、UploadProcessorServlet.java),同时更新web.xml。前端使用HTML和JavaScript实现交互,用户登录并进行图片文件互传。将项目部署到Tomcat,即可实现在线聊天并实时接收图片。
摘要由CSDN通过智能技术生成

全程使用myeclipse 2014开发,么么哒。

第一步:建web 工程

右键-New-Web Project

输入Project Name:   WebSocket  

憋直接Finish,点击两下Next> ,把下图红框内那条勾起,生成web.xml哦宝宝。


Finish吧,恭喜你,一个Java Web工程就酱紫建好了也,科科。


第二步:configure websocket支持

选中你创建的WebSocket  项目,右键-Build Path-Configure Build Path..





以上就配好了。


第三步:写代码

3.1 构思需求

模拟在线聊天

用户A登入网页,输入名字,保存至在线用户,分配为#1

用户B登入网页,输入名字,保存至在线用户,分配为#2

用户A给用户B发送图片文件,及时展现在用户B页面,反之亦然

3.2 准备工作

1.导入js需求包


2.创建文件上传后存放的文件夹


3.把jsp改成Html文件


3.3 编码部分



后台代码目录展示


ChatWebSocket.java

package socket;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;

import org.apache.catalina.websocket.MessageInbound;

public class ChatWebSocket extends MessageInbound {

	@Override
	protected void onBinaryMessage(ByteBuffer arg0) throws IOException {
		// TODO Auto-generated method stub
		System.out.println(arg0);
		
	}

	@Override
	protected void onTextMessage(CharBuffer arg0) throws IOException {
		// TODO Auto-generated method stub
		System.out.println(arg0);
		
	}

}

SocketServer.java

package socket;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;

import javax.servlet.http.HttpServletRequest;

import org.apache.catalina.websocket.MessageInbound;
import org.apache.catalina.websocket.StreamInbound;
import org.apache.catalina.websocket.WebSocketServlet;
import org.apache.catalina.websocket.WsOutbound;

public class SocketServer extends WebSocketServlet{

	private static final long serialVersionUID = 1L;
    public final Set<ChatWebSocket> users = new CopyOnWriteArraySet<ChatWebSocket>();

    public static int USERNUMBER = 1;
    
	@Override
	protected StreamInbound createWebSocketInbound(String arg0,
			HttpServletRequest arg1) {
		// TODO Auto-generated method stub
		return new ChatWebSocket(users);
	}

    public class ChatWebSocket extends MessageInbound {

        private String username;
        private Set<ChatWebSocket> users = new CopyOnWriteArraySet<ChatWebSocket>();;

        public ChatWebSocket() {

        }

        public ChatWebSocket(Set<ChatWebSocket> users) {
            this.users = users;
        }

        @Override
        protected void onTextMessage(CharBuffer message) throws IOException {
            // 这里处理的是文本数据
        	onMessage(message+"");
        }

        public void onMessage(String data) {
            String[] val1 = data.split("\\t");
            if(val1[0].equa
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值