Commit fc3f6d25 authored by 刘文胜's avatar 刘文胜

111

parent b7592564
...@@ -37,48 +37,42 @@ public final class IMManager { ...@@ -37,48 +37,42 @@ public final class IMManager {
private IMManager(){} private IMManager(){}
public static void pushMessage(AbstractMessage message){ public static void pushMessage(AbstractMessage message){
try {
queue.put(message);
} catch (InterruptedException e) {
}
try{ try{
addUserIfNotExist(message); addUserIfNotExist(message);
}catch(Throwable e){ }catch(Throwable e){
} }
try {
queue.put(message);
} catch (InterruptedException e) {
}
} }
public static void addUserIfNotExist(AbstractMessage e){ public static void addUserIfNotExist(AbstractMessage e){
final NewUserMessage newUserMessage=new NewUserMessage(); NewUserMessage newUserMessage=new NewUserMessage();
newUserMessage.appId=e.appId; newUserMessage.appId=e.appId;
newUserMessage.createTime=new Date(); newUserMessage.createTime=new Date();
newUserMessage.entCode=e.entCode; newUserMessage.entCode=e.entCode;
newUserMessage.openId=e.openId; newUserMessage.openId=e.openId;
pool.execute(new Runnable() { try {
@Override queue.put(e);
public void run() { } catch (InterruptedException e1) {
broadcast(newUserMessage);
} }
});
} }
public static void broadcast(AbstractMessage message){ public static void broadcast(AbstractMessage message){
if(waiters.size() == 0){
return;
}
String m = JSONObject.toJSONString(message); String m = JSONObject.toJSONString(message);
for (Waiter waiter : waiters) { for (Waiter waiter : waiters) {
if(waiter == null || /*if(waiter == null ||
message.entCode == null || message.entCode == null ||
waiter.entCode == null || waiter.entCode == null ||
waiter.entCode.intValue() != message.entCode.intValue()){//没有客服 waiter.entCode.intValue() != message.entCode.intValue()){//没有客服
continue; continue;
} }*/
Session session= waiter.session; Session session= waiter.session;
if(session == null || !session.isOpen()){ /*if(session == null || !session.isOpen()){
return; return;
} }*/
try { try {
session.getBasicRemote().sendText(m); session.getBasicRemote().sendText(m);
} catch (IOException e1) { } catch (IOException e1) {
...@@ -94,13 +88,16 @@ public final class IMManager { ...@@ -94,13 +88,16 @@ public final class IMManager {
} }
static{ static{
int pross = Runtime.getRuntime().availableProcessors(); int pross = Runtime.getRuntime().availableProcessors();
if(pross == 0 ){
pross = 1;
}
for(int i=0;i<pross;i++){ for(int i=0;i<pross;i++){
pool.execute(new Runnable() {//消息发射器 pool.execute(new Runnable() {//消息发射器
public void hand(){ public void hand(){
AbstractMessage e=queue.poll(); AbstractMessage e=queue.poll();
if(e == null){ if(e == null){
try { try {
Thread.sleep(3000); Thread.sleep(50);
} catch (InterruptedException e1) { } catch (InterruptedException e1) {
} }
return ; return ;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment