安卓 webSocket
来源:互联网 发布:矩阵lu分解特点 编辑:程序博客网 时间:2024/06/01 19:29
a端发送Message
WebSocket mConnecttion=new WebSocketConnection();mConnecttion.connect(wsUri, new WebSocketConnectionHandler(){ @Override public void onOpen() { Log.d("MessageSender.start.open", "open"); mConnecttion.sendTextMessage(msg); super.onOpen(); } @Override public void onClose(int code, String reason) { Log.d("MessageSender.start.close", "close"); super.onClose(code, reason); } @Override public void onTextMessage(String payload) { Log.d("MessageSender.start.textMessage", "textMessage"); super.onTextMessage(payload); } });
wsUrl的格式是:ws://192.168.8.29:8088/
b端接受Message
public class WebSocket extends NanoWebSocketServer{ public WebSocket(int port) { super(port); } public WebSocket(String hostname, int port) { super(hostname, port); } @Override public WebSocket openWebSocket(IHTTPSession handshake) { Log.d("WebSocket .openWebSocket", "openWebSocket"); return super.openWebSocket(handshake); } //受到消息 @Override protected void onFrameReceived(WebSocketFrame webSocket) { webSocket.getTextPayload(); Log.d("WebSocket .onFrameReceived", webSocket.getTextPayload()); super.onFrameReceived(webSocket); } @Override public void onSendFrame(WebSocketFrame webSocket) { Log.d("WebSocket .onSendFrame", "onSendFrame"); super.onSendFrame(webSocket); } @Override protected void onClose(WebSocket arg0, CloseCode arg1, String arg2, boolean arg3) { Log.d("WebSocket .onClose", "onClose"); } @Override protected void onException(WebSocket arg0, IOException arg1) { Log.d("WebSocket .onException", "onException"); arg1.printStackTrace(); } @Override protected void onMessage(WebSocket arg0, WebSocketFrame arg1) { Log.d("WebSocket .onMessage", "onMessage"); } @Override protected void onPong(WebSocket arg0, WebSocketFrame arg1) { Log.d("WebSocket .onPong", "onPong"); }}
a端可以发送自己的ip和端口信息到b端,同时在a端用NanoHTTPD实现小型的服务器,然后b端可以通过http请求访问a端,实现通信。
NanoHTTPD服务:
public class WebService extends NanoHTTPD{ public WebService(int port) { super(port); } public WebService(String hostname, int port) { super(hostname, port); } @Override public Response serve(IHTTPSession session) { Log.d("WebService.session.url",session.getUri()); if(session.getUri().equals("http://192.168.8.250:9000/image")){ try { InputStream input=new StringBufferInputStream("我发的就是这么没意义!"); return newChunkedResponse(Status.OK,"image",input); } catch (Exception e) { e.printStackTrace(); } } return super.serve(session); }}
b端的Http请求:
0 0
- 安卓 webSocket
- 安卓websocket长连接
- 利用websocket实现安卓消息推送
- 安卓项目中用到的websocket
- WebSocket安卓客户端实现详解(二)--客户端发送请求
- WebSocket安卓客户端实现详解(三)--服务端主动通知
- WebSocket安卓客户端实现详解(二)--客户端发送请求
- webSocket编程实现与安卓、ios通信
- WebSocket安卓客户端实现详解(一)--连接建立与重连
- 记录Ionic开发中,安卓5.5+使用websocket,连接错误
- WebSocket安卓客户端实现详解(三)–服务端主动通知
- WebSocket
- WebSocket
- WebSocket
- websocket
- WebSocket
- WebSocket
- WebSocket
- 第12章 线程控制-线程池
- HTML5存储系统
- spring MVC传值过滤空子段
- HTTP Live Streaming直播(iOS直播)技术分析与实现
- 如何安装OpenStack Manila (二)
- 安卓 webSocket
- SQL语句简单分页运用
- [Discovery]初识Windows通用应用(UWP App) - HelloWorld
- 提供一个Android原生的Progress——SwipeToRefreshLayout下拉刷新时的等待动画
- 用Fragment制作的Tab页面产生的UI重叠问题
- 如何安装OpenStack Manila (一)
- Spiral Matrix II
- WebView 保存HttpResponse 中的Cookie
- HDU 2576 数学