C# EMS Client
从 C# 客户端连接 Tibco EMS
下面例子简要介绍 C# 客户端怎样使用 TIBCO.EMS.dll 来连接 EMS 服务器.
using System;
using System.Diagnostics;
using System.Threading;
using TIBCO.EMS; namespace TestEMS
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Test started");
new Program().Run();
Console.ReadLine();
} private void Run()
{
StartEMSServer();
CreateEMSServerTopicPublisher();
CreateClientTopicSubscriber("Owner LIKE '%Rich Newman%'"); // Pass "" for no message selector
EMSServerPublishThisMessage("Hello World", "Owner", "Rich Newman");
} #region EMS Server
private const string tibcoEMSPath = @"C:\tibco\ems\5.0\bin\";
private readonly string tibcoEMSExecutable = tibcoEMSPath + "tibemsd.exe";
private Process tibcoEMSProcess;
public void StartEMSServer()
{
tibcoEMSProcess = new Process();
ProcessStartInfo processStartInfo = new ProcessStartInfo(tibcoEMSExecutable);
tibcoEMSProcess.StartInfo = processStartInfo;
processStartInfo.WorkingDirectory = tibcoEMSPath;
bool started = tibcoEMSProcess.Start();
Thread.Sleep(500);
} TopicConnection publisherConnection;
TopicSession publisherSession;
TopicPublisher emsServerPublisher;
private void CreateEMSServerTopicPublisher()
{
TopicConnectionFactory factory = new TIBCO.EMS.TopicConnectionFactory("localhost");
publisherConnection = factory.CreateTopicConnection("", ""); // Username, password
publisherSession = publisherConnection.CreateTopicSession(false, Session.AUTO_ACKNOWLEDGE);
Topic generalTopic = publisherSession.CreateTopic("GeneralTopic");
emsServerPublisher = publisherSession.CreatePublisher(generalTopic); publisherConnection.Start();
} internal void EMSServerPublishThisMessage(string message, string propertyName, string propertyValue)
{
TextMessage textMessage = publisherSession.CreateTextMessage();
textMessage.Text = message;
textMessage.SetStringProperty(propertyName, propertyValue);
emsServerPublisher.Publish(textMessage);
Console.WriteLine("EMS Publisher published message: " + message);
} #endregion #region EMS Client
TopicConnection subscriberConnection;
TopicSession subscriberSession;
private void CreateClientTopicSubscriber(string messageSelector)
{
TopicConnectionFactory factory = new TIBCO.EMS.TopicConnectionFactory("localhost");
subscriberConnection = factory.CreateTopicConnection("", ""); // Username, password
subscriberConnection.Start();
subscriberSession = subscriberConnection.CreateTopicSession(false, Session.AUTO_ACKNOWLEDGE);
Topic clientTopic = subscriberSession.CreateTopic("GeneralTopic");
TopicSubscriber clientTopicSubscriber = subscriberSession.CreateSubscriber(clientTopic, messageSelector, true);
clientTopicSubscriber.MessageHandler += new EMSMessageHandler(test_MessageHandler);
} void test_MessageHandler(object sender, EMSMessageEventArgs args)
{
Console.WriteLine("EMS Client received message: " + args.Message.ToString());
} #endregion
}
}
C# EMS Client的更多相关文章
- tibco EMS 8.2.0安装
安装环境 序号 项目 值 1 OS版本 Red Hat Enterprise Linux Server release 7.1 (Maipo) 2 内核版本 3.10.0-229.el7.x86_64 ...
- 轻量级远程调用框架-Hessian学习笔记-Demo实现
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单.快捷.采用的是二进制RPC协议,因为采用的是二进制协 ...
- Android简单实现Socket通信,client连接server后,server向client发送文字数据
案例实现的是简单的Socket通信,当client(Androidclient)连接到指定server以后,server向client发送一句话文字信息(你能够拓展其他的了) 先看一下服务端程序的实现 ...
- vmware里面的名词 vSphere、vCenter Server、ESXI、vSphere Client
vmware里面的名词 vSphere.vCenter Server.ESXI.vSphere Client vSphere.vCenter Server.ESXI.vSphere Client VS ...
- Apache2.4:AH01630 client denied by server configuration
问题说明:Apache服务总共有4个,是为了防止单点故障和负载均衡,负载均衡控制由局方的F5提供. 访问的内容在NAS存储上,现象是直接访问每个apache的服务内容都是没有问题,但是从负载地址过来的 ...
- [异常解决] windows用SSH和linux同步文件&linux开启SSH&ssh client 报 algorithm negotiation failed的解决方法之一
1.安装.配置与启动 SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有 ...
- xamarin IOS 报错处理: an error occurred on client Build420719 while
xamarin IOS 开发时如果报错如下: an error occurred on client Build420719 while...... 出现如下问题时,可能是1.丢失文件2.没有包括在项 ...
- ASP.NET OAuth:access token的加密解密,client secret与refresh token的生成
在 ASP.NET OWIN OAuth(Microsoft.Owin.Security.OAuth)中,access token 的默认加密方法是: 1) System.Security.Crypt ...
- 在ASP.NET中基于Owin OAuth使用Client Credentials Grant授权发放Token
OAuth真是一个复杂的东东,即使你把OAuth规范倒背如流,在具体实现时也会无从下手.因此,Microsoft.Owin.Security.OAuth应运而生(它的实现代码在Katana项目中),帮 ...
随机推荐
- 【工具】小巧好用的屏幕截图工具——ScrToPic
百度搜ScrToPic,有绿色版的用. 好处: 小巧快捷,不用为了截图而开QQ,不用看QQ的弹窗广告. 可以自定义截图区域和窗口捕捉,可以自定义这两个功能的快捷键. 截图时可以选择要不要显示鼠标. 窗 ...
- TCP/IP状态详解[转]
TCP正常建立和关闭的状态变化 TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做 四次握手. 建立连接 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建 ...
- 支持向量机(SVM)(三)-- 最优间隔分类器(optimal margin classifier)
在之前为了寻找最有分类器,我们提出了例如以下优化问题: 在这里我们能够把约束条件改写成例如以下: 首先我们看以下的图示: 非常显然我们能够看出实线是最大间隔超平面,如果×号的是正例,圆圈的是负例.在虚 ...
- iOS彩票项目--第六天,运用MVC思想搭建设置界面(非storyboard方法)
一.我只想说封装的思想很重要,MVC的思想也很重要,利用MVC思想搭建一下的界面 先说显示出来的cell,有三种(图中的两种,还有一种是最普通的,没有图片的),这种显示不同的cell,交给模型来处理, ...
- DataGridView基本操作
1.获得某个(指定的)单元格的值:dataGridView1.Row[i].Cells[j].Value;2.获得选中的总行数:dataGridView1.SelectedRows.Count;3.获 ...
- 25+开源的在线购物软件(PHP, JavaScript 和 ASP.Net)
25 +免费开源的电子商务解决方案,提供了建立一个在线购物所有主要功能,并能够连接到一个支付处理系统1. Magento Magento是一套专业开源的PHP电子商务系统.Magento设计得非常灵活 ...
- C# 窗体显示避免抢夺焦点
通过调用API进行显示可以避免抢夺焦点的问题 以下是API调用 using System.Runtime.InteropServices; [DllImport("user32.dll&qu ...
- am335x hid-multitouch.c
am335x在使用电容屏,需要加载hid-multitouch.ko模块 由下面文件生成 kernel/drivers/hid/hid-multitouch.c 内核中编译模块 make module ...
- 第三百一十节,Django框架,模板语言
第三百一十节,Django框架,模板语言 模板语言就是可以将动态数据在html模板渲染的语言 一.接收值渲染 locals()函数,写在请求响应render()函数里,可以将逻辑处理函数里的变量传到h ...
- openal 基础知识4
二函数 1. buffer函数 void alGenBuffers(ALsizei n /* buffer数*/, ALuint * buffers /* buffer ID数组*/); void a ...