我正在尝试用UCWA(Lync应用)实现双向聊天,我可以将数据发送给客户端,但是如何从该客户端接收数据呢?来实现一个正确的双向聊天?
我附加了代码发送一些ping给特定的用户,如何从用户那里接收数据来实现聊天呢?
private void StarConversation(string startConversationLink, string hostName, string accessToken, string tokenType)
{
var myObject = new JObject();
myObject.Add("operationId", Guid.NewGuid().ToString().Replace("-", ""));
myObject.Add("to", "sip:xyz@abcd.com");
myObject.Add("subject", "TestConv");
List<string> outgoing = new List<string>();
List<string> incoming = new List<string>();
List<string> timeout = new List<string>();
JObject href = new JObject();
string sending = "Hey there ! how are you doing ?";
href.Add("href", "data:text/plain;base64," + Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sending)));
JObject message = new JObject();
message.Add("message", href);
myObject.Add("_links", message);
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", tokenType + " " + accessToken);
client.PostAsync(new Uri(hostName + startConversationLink), new StringContent(JsonConvert.SerializeObject(myObject), Encoding.UTF8, "application/json")).Result;
if (response.IsSuccessStatusCode)
{
Uri temp = new Uri(hostName + m_eventsLink);
HttpResponseMessage response2 = Get(client, temp.ToString());
string nextLink = string.Empty;
string timeo ;
string ss = string.Empty;
int i =0;
if (response2.IsSuccessStatusCode)
{
string retData2 = response2.Content.ReadAsStringAsync().Result;
var o = JObject.Parse(retData2);
nextLink = o["_links"]["next"]["href"].Value<string>();
response = client.PostAsync(new Uri(hostName + startConversationLink), new StringContent(JsonConvert.SerializeObject(myObject), Encoding.UTF8, "application/json")).Result;
temp = new Uri(hostName + m_eventsLink);
response2 = Get(client, temp.ToString());
retData2 = response2.Content.ReadAsStringAsync().Result;
o = JObject.Parse(retData2);
}
}
}发布于 2013-10-23 12:45:50
此时您要做的是与用户开始对话,并提供一条与messagingInvitation一起使用的初始消息。从这个代码切片中我不知道的是:
如果代码正在侦听事件和报告活动。下一步是侦听messagingInvitation并检查对话/信息传递事件。会话将从连接(状态) (messageInvitation正在处理)过渡到连接(messagingInvitation被接受)或断开(messagingInvitation被拒绝,会话结束,其他错误)。假设另一个用户接受要检查的下一个事件是已连接的消息状态(这意味着消息传递模式在会话中处于活动状态,有用的方法(如sendMessage、addParticipant和setIsTyping将可用)或断开连接(这意味着消息传递模式不活动,可以使用addMessaging来启用此模式)。
如果您能够达到这一点,则当任何参与者向会话发送消息时,都会出现消息事件。direction属性可用于确定当前UCWA用户何时发送了消息(传出),对于所有其他用户,应该有一个可以标识用户的参与者属性。
https://stackoverflow.com/questions/19512289
复制相似问题