资源简介
通过websocket+service实现的后台聊天功能,能购保持一直在后台与服务器的连接,进行即时通讯。服务器,客户端代码都在这里
代码片段和文件信息
package org.wlf.java_websocket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.Collection;
import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer;
public class ChatServer extends WebSocketServer {
public ChatServer(int port) throws UnknownHostException {
super(new InetSocketAddress(port));
}
public ChatServer(InetSocketAddress address) {
super(address);
}
@Override
public void onOpen(WebSocket conn ClientHandshake handshake) {
sendToAll(conn.getRemoteSocketAddress().getAddress().getHostAddress()
+ “ 进入房间 !“);
System.out.println(conn.getRemoteSocketAddress().getAddress()
.getHostAddress()
+ “ 进入房间 !“);
}
@Override
public void onClose(WebSocket conn int code String reason boolean remote) {
sendToAll(conn.getRemoteSocketAddress().getAddress().getHostAddress()
+ “ 离开房间 !“);
System.out.println(conn.getRemoteSocketAddress().getAddress()
.getHostAddress()
+ “ 离开房间 !“);
}
@Override
public void onMessage(WebSocket conn String message) {
sendToAll(“[“
+ conn.getRemoteSocketAddress().getAddress().getHostAddress()
+ “]“ + message);
System.out.println(“[“
+ conn.getRemoteSocketAddress().getAddress().getHostAddress()
+ “]“ + message);
}
@Override
public void onerror(WebSocket conn Exception e) {
e.printStackTrace();
if (conn != null) {
System.out.println( String.valueOf(e));
conn.close();
}
}
// 发送给所有的聊天者
private void sendToAll(String text) {
Collection conns = connections();
synchronized (conns) {
for (WebSocket client : conns) {
client.send(text);
}
}
}
// 测试
public static void main(String[] args) throws InterruptedException
IOException {
int port = 8887;
ChatServer server = new ChatServer(port);
server.start();
System.out.println(“房间已开启,等待客户端接入,端口号: “ + server.getPort());
BufferedReader webSocketIn = new BufferedReader(new InputStreamReader(
System.in));
while (true) {
String stringIn = webSocketIn.readLine();
server.sendToAll(stringIn);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 362 2016-02-16 10:20 Java-WebSocket\.classpath
文件 390 2016-02-16 15:30 Java-WebSocket\.project
文件 57 2016-06-20 19:04 Java-WebSocket\.settings\org.eclipse.core.resources.prefs
文件 598 2016-02-16 10:19 Java-WebSocket\.settings\org.eclipse.jdt.core.prefs
文件 3924 2016-06-23 18:16 Java-WebSocket\bin\org\wlf\java_websocket\ChatServer.class
文件 97134 2016-02-16 10:20 Java-WebSocket\lib\java_websocket.jar
文件 2357 2016-06-23 18:16 Java-WebSocket\src\org\wlf\java_websocket\ChatServer.java
文件 105 2016-02-16 09:24 WebSocketDemo\.gitignore
文件 31 2016-06-23 09:03 WebSocketDemo\.gradle\2.10\taskArtifacts\cache.properties
文件 17 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\taskArtifacts\cache.properties.lock
文件 132699 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\taskArtifacts\fileHashes.bin
文件 2925402 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\taskArtifacts\fileSnapshots.bin
文件 20342 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\taskArtifacts\outputFileStates.bin
文件 130887 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\taskArtifacts\taskArtifacts.bin
文件 82115 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\tasks\_app_compileDebugJavaWithJavac\localClassSetAnalysis\localClassSetAnalysis.bin
文件 17 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\tasks\_app_compileDebugJavaWithJavac\localClassSetAnalysis\localClassSetAnalysis.lock
文件 19362 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\tasks\_app_compileDebugJavaWithJavac\localJarClasspathSnapshot\localJarClasspathSnapshot.bin
文件 17 2016-06-24 09:11 WebSocketDemo\.gradle\2.10\tasks\_app_compileDebugJavaWithJavac\localJarClasspathSnapshot\localJarClasspathSnapshot.lock
文件 31 2016-02-16 09:24 WebSocketDemo\.gradle\2.8\taskArtifacts\cache.properties
文件 17 2016-06-22 18:21 WebSocketDemo\.gradle\2.8\taskArtifacts\cache.properties.lock
文件 222936 2016-06-22 18:21 WebSocketDemo\.gradle\2.8\taskArtifacts\fileHashes.bin
文件 2599284 2016-06-22 18:21 WebSocketDemo\.gradle\2.8\taskArtifacts\fileSnapshots.bin
文件 21302 2016-06-21 09:34 WebSocketDemo\.gradle\2.8\taskArtifacts\outputFileStates.bin
文件 108027 2016-06-22 18:21 WebSocketDemo\.gradle\2.8\taskArtifacts\taskArtifacts.bin
文件 13 2016-06-23 09:02 WebSocketDemo\.idea\.name
文件 686 2016-06-23 09:02 WebSocketDemo\.idea\compiler.xm
文件 76 2016-06-23 09:02 WebSocketDemo\.idea\copyright\profiles_settings.xm
文件 159 2016-06-23 09:02 WebSocketDemo\.idea\encodings.xm
文件 811 2016-06-23 09:03 WebSocketDemo\.idea\gradle.xm
文件 761 2016-06-23 16:01 WebSocketDemo\.idea\libraries\appcompat_v7_23_1_1.xm
............此处省略1630个文件信息
相关资源
- Okhttp实现websocket链接
- Amazon Web Services in Action 2nd Edition-Mann
- 基于安卓的网上订餐系统
- NC中开发webservice所需工具包
- 一个简易版的新闻应用
- 讯飞SDK以及自己开发的
- 一个APP源码
- 上瘾hooked
- cat4500e-entservices-mz.152-4.E1.zip
- 一个表白墙项目
- 基于安卓课堂签到签到系统,教师端
- wifi - direct应用代码
- 自己写了一个火车票售卖系统,实现
- ArouterDemo.zip
- 佳博打印机通用SDK二次开发包,适用
- 自定义View实战一 汽车速度仪表盘
- 华为云服务HCIP-Cloud serviceH13-821题库
- 功能相当完善的记事本app
- 太原科大天气APP毕业设计
- 完整的资讯类项目框架
- 安卓remusic仿网易音乐播放器源代码
- (900多个安卓开发小图标精美小图标
- android 获取远程服务器增删改查
- 《Android物联网开发从入门到实战》随
- android直连sqlserver54228
- dlnatest.zip
- 课设图书管理.zip
- Xamarin多个运行appdemo
- 安卓开发高仿QQ空间
- 酷炫Menu菜单,BoomMenu的详细使用步骤
评论
共有 条评论