如何在android中使用websocket协议进行服务器通信

  介绍

本篇文章给大家分享的是有关如何在android中使用websocket协议进行服务器通信,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>客户端代码:

import  com.example.test.R;,   ,   import  android.app.Activity,   import  android.os.Bundle,   import  android.view.View,   import  android.view.View.OnClickListener,   import  android.widget.Button,   import  android.widget.EditText,   import  android.widget.Toast,   import  de.tavendo.autobahn.WebSocketConnection,   import  de.tavendo.autobahn.WebSocketConnectionHandler,   import  de.tavendo.autobahn.WebSocketException,   ,   public  class  MainActivity  extends  Activity  implements  OnClickListener  {,   ,   ,private  Button 英国电信;   ,private  EditText  ed_name;   ,private  EditText  ed_text;   ,private  Button  bt1;   ,WebSocketConnection  wsc;   ,@Override    ,protected  void  onCreate (Bundle  savedInstanceState), {,   ,super.onCreate (savedInstanceState);,   ,setContentView (R.layout.activity_main);,   ,bt =,(按钮),findViewById (R.id.bt);,   EditText, ed_name =, (), findViewById (R.id.ed_name);,   EditText, ed_text =, (), findViewById (R.id.ed_text);,   ,bt1 =,(按钮),findViewById (R.id.bt1);,   ,bt.setOnClickListener(这个),,   ,bt1.setOnClickListener(这个),,=,,wsc  new  WebSocketConnection (),,   ,   }大敌;   ,   ,private  void  connect (), {,   ,System.out.println(“开始连接websocket///?,,   ,   try {大敌;   ,   wsc.connect才能(“ws://192.168.1.245:8080/DriveServer/mainservlet",,   ,,new  WebSocketConnectionHandler (), {,   ,,   ,,@Override    ,,public  void  onBinaryMessage (byte[],有效负载),{,   ,,,System.out.println (“onBinaryMessage 大??   ,,,,+,payload.length),,   ,,},   ,   ,,@Override    ,,public  void  onClose (int 代码,String 原因),{,   ,,,System.out.println (“onClose 原因=?+,原因),,   ,,},   ,   ,,@Override    ,,public  void  onOpen (), {,   ,,,System.out.println (“onOpen");,   ,,,showtext(“连接成功“),,   ,,,//,wsc.sendTextMessage(“你好!“),,   ,,,//,wsc.disconnect (),,   ,,},   ,,@Override    ,,public  void  onRawTextMessage (byte[],有效负载),{,   ,,,System.out.println (“onRawTextMessage 大??   ,,,,+,payload.length),,   ,,},   ,   ,,@Override    ,,public  void  onTextMessage (String 载荷),{,   ,,,System.out.println (“onTextMessage", +,有效负载),,   ,,,showtext(载荷),,   ,,},   ,   ,,}),,   ,}catch  (WebSocketException  e), {,//才能,TODO  Auto-generated  catch  block    e.printStackTrace才能(),,   }大敌;   ,   }大敌;   ,@Override    ,public  void  onClick (View  v), {,   ,//TODO  Auto-generated  method  stub    ,int  id =, v.getId (),,   ,switch  (id), {,   case 才能;R.id.bt :,   wsc.sendTextMessage才能(“我是客户端,我通过ws往服务器发数据“),,   ,,休息;   case 才能;R.id.bt1 :,   ,,连接();   ,,休息;   时间:default 才能;   ,,休息;   }大敌;   }大敌;   ,private  void  showtext (String 味精),{,   ,Toast.makeText(,,味精,0),告诉(),,   }大敌;   }

下面是<>强服务器代码:

用的是jetty7自带的websocket库

package  com.websocket;,   ,   import  java.io.IOException,   import  java.io.UnsupportedEncodingException,   import  java.nio.ByteBuffer,   import  java.nio.CharBuffer,   import  java.text.SimpleDateFormat,   import  java.util.ArrayList,   import  java.util.Date,   import  java.util.HashMap,   import 并不知道,   import  java.util.Map,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在android中使用websocket协议进行服务器通信