WinRT (Windows8 Release Preview) 작업 중입니다. 나는 웹 애플리케이션 (실제로 더 간단한 XMPP 클라이언트)을 가지고있다.StreamSocket을 사용하여 SSL로 업그레이드
주로 StreamSocket 클래스를 사용하여 Jabber 서버에 연결합니다. SSL을 사용하기 위해 이미 연결된 소켓을 업그레이드하려고 할 때 문제가 발생했습니다.
나는 그것을 구현하기 위해 StreamSocket.UpgradeToSslAsync을 사용합니다. 이 예외를 throw합니다.
예기치 않은 시간에 메서드가 불려갔습니다. (HRESULT 예외 : 0x8000000E)
나는 이런 일이 일어나는 이유를 모릅니다. 나는 위의 링크로서 모든 것을 해냈다. 성공적으로 소켓 연결을 만들었습니다. Jabber 서버에서 일부 XML 스탠자를받을 수 있습니다. 다음 사진은 실행 중입니다! [[1]
new tab에서 사진을 볼 수 있습니다.
UpToSSL 버튼을 클릭하면 충돌이 발생하고 위와 같은 예외가 발생합니다.
여기에 간단한 버전 코드 :
// xmpp is my CXMPP client class
private void StartTlsBtn_Click(object sender, RoutedEventArgs e)
{
xmpp.SendXml("<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls' />");
}
// it works fine, and i have got the reponse from server:
// <proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
// next step i should upgrade my sockey connection to ssl
private void UpSslBtn_Click(object sender, RoutedEventArgs e)
{
xmpp.UpToSsl();
}
async public void UpToSsl()
{
SendEvent.WaitOne();
SendEvent.Reset();
// private StreamSocket ClientSock;
await ClientSock.UpgradeToSslAsync(SocketProtectionLevel.Ssl, ClientSock.Information.RemoteHostName);
isSsl = true;
SendEvent.Set();
}
나에게 약간의 팁을 제공하십시오. 고맙습니다.
당신이 따라 ConnectAsync와 연결 시도 해 봤나에서 출시 후 XMPP 라이브러리 출시 될 예정이로 자신을 조달하려고? 소켓을 만드는 방법을 보여주고 문서의 설명 섹션에있는 단계를 구현하면 도움이됩니다. –
네, 실제로 ConnectAsync를 MSDN에서 말하는대로 사용합니다. – zjalex