package listener;
import com.tibco.tibrv.Tibrv;
import com.tibco.tibrv.TibrvException;
import com.tibco.tibrv.TibrvListener;
import com.tibco.tibrv.TibrvMsg;
import com.tibco.tibrv.TibrvMsgCallback;
import com.tibco.tibrv.TibrvRvdTransport;
import constants.Constants;
public class TibListener implements TibrvMsgCallback, Constants
{
private TibrvRvdTransport transport = null;
//初始化TibrvListener
public TibListener()
{
try
{
Tibrv.open(Tibrv.IMPL_NATIVE);
transport = new TibrvRvdTransport(tibcoService, tibcoNetwork, tibcoDaemon);
new TibrvListener(Tibrv.defaultQueue(), this, transport, tibcoSubject, null);
}
catch (TibrvException e)
{
e.printStackTrace();
}
}
//监听
public void listen()
{
while (true)
{
try
{
Tibrv.defaultQueue().dispatch();
}
catch (TibrvException ex)
{
ex.printStackTrace();
}
catch (InterruptedException ex)
{
ex.printStackTrace();
}
}
}
//回调方法,监听到指定Subject时触发
public void onMsg(TibrvListener listener, TibrvMsg msg)
{
if (msg != null)
{
String receivedMsg;
try
{
receivedMsg = (String) msg.get("msg");
System.out.println(receivedMsg);
}
catch (TibrvException e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
TibListener tibListener = new TibListener();
tibListener.listen();
}
}