資源簡介
1. Websocket 編程,包括基于Tomcat8的文本和二進(jìn)制讀寫,和瀏覽器端的編程
2. 提供貪吃蛇案例,包括服務(wù)端程序和網(wǎng)頁端,服務(wù)端是控制蛇運(yùn)動(dòng)方向的
3. 提供嵌入式端能過Websocket控制燈亮度,嵌入式代碼另外上傳
代碼片段和文件信息
package?com.iweb.socket;
import?java.util.HashMap;
import?java.util.Map;
import?javax.websocket.OnClose;
import?javax.websocket.OnMessage;
import?javax.websocket.OnOpen;
import?javax.websocket.Session;
import?javax.websocket.server.ServerEndpoint;
@ServerEndpoint(“/websocket/light“)
public?class?LightServer?{
private?static?Map?sessionMap?=?new?HashMap();
private?static?int?preDi;
@OnOpen
public?void?onOpen(){
//System.out.println(“WEBopen“);
}
@OnClose
public?void?onClose(){
//System.out.println(“WEBCLOSE“);
}
@OnMessage
public?void?onMessage(Session?session?String?msg){
//System.out.println(“received?message:?“?+?msg?+?“?session?id:?“?+?session.getId()?+?“?this:?“?+?this);
System.out.println(“received?message?on?light:?“?+?msg);
int?di?=?Integer.parseInt(msg); //0~255:亮度調(diào)節(jié)?-1:嵌入式端發(fā)來請求
if(di?==?preDi){
return;
}
if(session.isOpen()){
Session?waitCommandSession?=?sessionMap.get(“waitCommand“);
try?{
if(di?>=?0){//控制頁面發(fā)來的
try{
if(waitCommandSession?==?null){
session.getBasicRemote().sendText(“目的地找不到!“);
}else{
if(waitCommandSession.isOpen()){
waitCommandSession.getBasicRemote().sendText(di+““);
preDi?=?di;
}
}
}catch(Exception?e){
e.printStackTrace();
}
}else{//-1
if(waitCommandSession?!=?null?&&?waitCommandSession.isOpen()){
waitCommandSession.close();
}
sessionMap.put(“waitCommand“?session);
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}
}
- 上一篇:101輸入法xp及9.1版
- 下一篇:wdsecuritysetup
評論
共有 條評論