全程使用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