介绍
本篇文章给大家分享的是有关如何在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协议进行服务器通信