java实现websocket服务器,java版的WebSocket测试服务器

这是一个封装好的WebSocket服务器,通过简单的扩展就可以实现基于websocket的服务。写这个工具的主要目的是为了用于方便websocket应用的前端和服务器同时开发。

比如做HTML5游戏一般都是服务器和客户端同时开发。在开发之前最重要的就是制定通信协议,但游戏客户端在开发时可能需要调用接口,此时如果服务器端还未实现的话,就可能影响客户端的开发工作,用这个就可以解决问题。

可以在开发游戏客户端前,完成通信接口的简单实现,下面是一个调用示例:

import org.json.JSONException;

import org.json.JSONObject;

import com.hoverlees.ws.*;

public class Test implements WebSocketHandler {

private int id=1;

public Test(){

WebSocketServer server;

server=new WebSocketServer(8766);

server.setHandler("/", this);

try {

server.start();

} catch (WebSocketServerException e) {

e.printStackTrace();

}

}

public static void main(String[] args){

new Test();

}

@Override

public void onConnect(WebSocketServer server,WebSocketSession session) {

System.out.println("用户["+id+"]进入.");

session.userData=id;

id++;

server.sendPacket(session, ("Hello!".getBytes()));

}

@Override

public void onPacket(WebSocketServer server,WebSocketSession session, WebSocketPacket packet) {

System.out.println("收到用户["+session.userData+"]数据: \""+packet.getStringData()+"\"");

try{

JSONObject obj=new JSONObject(packet.getStringData());

String cmd=obj.getString("cmd");

if(cmd.equals("add")){

int sum=obj.getInt("a")+obj.getInt("b");

server.sendPacket(session, ("a+b="+sum).getBytes());

}

else if(cmd.equals("sub")){

int sub=obj.getInt("a")-obj.getInt("b");

server.sendPacket(session, ("a-b="+sub).getBytes());

}

}catch(JSONException e){

e.printStackTrace();

}

}

@Override

public void onDisconnect(WebSocketServer server,WebSocketSession session) {

System.out.println("用户["+session.userData+"]退出.");

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值