Up until Monday 6th my code worked. It simply uses FiddlerCore to monitor the widgets Websocket connection and enqueue the data frames text. Later I process that text to get the "Option" price/times I want. There used to be a constant stream of OnWebSocketMessage calls but now there are none from the Websocket! Only a couple for html/gfx at the start. I can see the same data I used to get in the propper Fiddler app so know the certificates are there and working. But no longer in my app. It seems I'm doing something wrong and it was a fluke it worked before? Or SSL was not used but now is after they updated? Please help!
01.//certmaker.exe is in debug dir02.//see Log_OnLogString for output 03. 04.//App.xaml.cs05.using Fiddler;06.public partial class App : Application07.{08. protected override void OnStartup(StartupEventArgs e)09. {10. //Setup internal proxy11. FiddlerCoreStartupFlags oFCSF = FiddlerCoreStartupFlags.Default;12. oFCSF = (oFCSF & ~FiddlerCoreStartupFlags.RegisterAsSystemProxy);13. FiddlerApplication.Startup(0, oFCSF);14. base.OnStartup(e);15. }16. protected override void OnExit(ExitEventArgs e)17. {18. FiddlerApplication.Shutdown();19. base.OnExit(e);20. }21.}22. 23.//MainWindow.xaml.cs24.using Fiddler;25.using Awesomium.Core;26.using Awesomium.Windows.Controls;27.using System.Collections.Concurrent;28. 29.public partial class MainWindow : Window30.{31. WebControl AweWebControl;32. ConcurrentQueue<string> CQFiddlerPayloads;33. public MainWindow()34. {35. CQFiddlerPayloads = new ConcurrentQueue<string>();36. 37. FiddlerApplication.OnWebSocketMessage += FiddlerApplication_OnWebSocketMessage;38. FiddlerApplication.Log.OnLogString += Log_OnLogString;39. 40. WebCore.Initialize(new WebConfig41. {42. UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36"43. });44. WebPreferences prefs = new WebPreferences()45. {46. ProxyConfig = "http://127.0.0.1:" + FiddlerApplication.oProxy.ListenPort.ToString(),47. };48. WebSession webSession = WebCore.CreateWebSession(prefs);49. AweWebControl = new WebControl();50. AweWebControl.WebSession = webSession;51. AweWebControl.CertificateError += AweWebControl_CertificateError;52. 53. InitializeComponent();54. 55. GridAweBrowser.Children.Add(AweWebControl);56. AweWebControl.Source = new Uri("https://binguest.optiontime.com/binGuest/GuestMode.jsp?vendor=option-time&lang=en#classic");57. 58. //create DispatcherTimer to process CQFiddlerPayloads59. }60. 61. string LogString = "";62. void Log_OnLogString(object sender, LogEventArgs e)63. {64. LogString += e.LogString + "\n";65. // /Fiddler.CertMaker> Using Fiddler.DefaultCertificateProvider+MakeCertEngine for certificate generation66. // [WebSocket #20] Read from Server failed... Object reference not set to an instance of an object. <<not always!67. // [WebSocket #20] Read from Client returned error: 068. // [WebSocket #20] Read from Server returned error: 069. }70. 71. void FiddlerApplication_OnWebSocketMessage(object sender, WebSocketMessageEventArgs e)72. {73. if (e.oWSM.FrameType == WebSocketFrameTypes.Text && e.oWSM.IsFinalFrame == true)74. CQFiddlerPayloads.Enqueue(e.oWSM.PayloadAsString());75. }76. 77. void AweWebControl_CertificateError(object sender, CertificateErrorEventArgs e)78. {79. e.Handled = EventHandling.Modal;80. e.Ignore = true;81. }82.}