private void BtnHello_Click(object sender, EventArgs e) { if (c != null && !c.IsClosed()) { // Closing a connection c.Close(); TxtLog.Text += "\r\nDisconnected."; return; } TxtLog.Text = "Initialized"; // Create a new connection factory to create // a connection. ConnectionFactory cf = new ConnectionFactory(); c = cf.CreateConnection(); TxtLog.Text += "\r\nSending hello world"; ChannelMessage msg = new ChannelMessage(); msg.From = "csharp"; msg.Message = "Hello, World!"; msg.ChanNum = 5; c.Publish("world.channel_message", msg.ToByteArray()); // Simple synchronous subscriber sSync = c.SubscribeSync("world.channel_message"); TxtLog.Text += "\r\nWaiting for message..."; TmrMessage.Enabled = true; }
public bool WriteMessage(ChannelMessage msg) { var data = msg.ToByteArray(); var len = 4 + data.Length; var ptr = Marshal.AllocHGlobal(len); Marshal.WriteInt32(ptr, 0, data.Length); Marshal.Copy(data, 0, new IntPtr(ptr.ToInt32() + 4), data.Length); var ret = entryPoints.VirtualChannelWrite(OpenChannel, ptr, (uint)len, ptr); return(ret == ChannelReturnCodes.Ok); }
public bool WriteMessage(ChannelMessage msg) { var data = msg.ToByteArray(); int written; var ret = WtsApi32.WTSVirtualChannelWrite(mHandle, data, data.Length, out written); if (ret) { return(true); } var ex = new Win32Exception(); if (!SeenHello && ex.NativeErrorCode == 1 /* Incorrect Function */) { return(false); } Log("RDP Virtual channel Write Failed: " + ex.Message); return(false); }
public void PublishMessage(string channel, string messageString) { var channelMessage = new ChannelMessage() { User = _user, Password = _pwd, Channel = channel, MessageString = messageString }; _sendMessageQueue.Enqueue(new Database.Message() { Channel = channelMessage.Channel, ByteMessageString = Encoding.ASCII.GetString(channelMessage.ToByteArray()) }); SendMessages(); }