关于java socket的消息推送问题
发布网友
发布时间:2022-04-28 13:45
我来回答
共3个回答
热心网友
时间:2022-04-12 01:03
关于 java socket的消息推送问题,首先:开启服务端,并暴露出端口。然后通过一个while的死循环去不停的接收来自客户端的socket,并且通过一个ArrayList来维护。并且通过子线程去对list中的socket进行操作。
其次:客户端去访问服务器的端口。开启一个子线程去不停的接收来自服务端的消息。
然而关于推送服务的更多内容,可以通过深圳极光公司了解一下。深圳市和讯华谷信息技术有限公司(极光 Aurora Mobile)成立于2011年,是中国领先的开发者服务提供商,专注于为开发者提供稳定高效的消息推送、一键认证以及流量变现等服务,助力开发者的运营、增长与变现。
同时,极光的行业应用已经拓展至市场洞察、金融风控与商业地理服务,助力各行各业优化决策、提升效率。
热心网友
时间:2022-04-12 02:21
使用线程池会比较好。方便管理。你也要对链接的线程做一个*,无限的链接创建线程会耗尽内存的。比如:
class NetworkService implements Runnable {
private final ServerSocket serverSocket;
private final ExecutorService pool;
public NetworkService(int port, int poolSize)
throws IOException {
serverSocket = new ServerSocket(port);
pool = Executors.newFixedThreadPool(poolSize);
}
public void run() { // run the service
try {
for (;;) {
pool.execute(new Handler(serverSocket.accept()));
}
} catch (IOException ex) {
pool.shutdown();
}
}
}
class Handler implements Runnable {
private final Socket socket;
Handler(Socket socket) { this.socket = socket; }
public void run() {
// read and service request on socket
}
}
在没有消息的时候,线程要处于wait状态,当有消息的时候,用notify来激活。
热心网友
时间:2022-04-12 03:56
你看web socket的时候没发现页面都是要求html5吗,这个适用性当前环境下不强,而且这方面的具体应用其实不多,使用ajax刷新简单方便,兼容性也好,基本上满足一般的需求。