Al abrir una conexión websocket (en JavaScript) a mi servidor personalizado que escribí (C#), quiero incluir un parámetro al final de la URL, por ejemplo, 'ws://127.0.0.1:9003/myParameter'.
var socket = new WebSocket('ws://127.0.0.1:9003?myParameter=1'); socket.onopen = function () { deferred.resolve(true); socket.close(); };En el lado del servidor tengo este método aceptando conexiones:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { try { t.Start(); while (true) { TcpClient c = t.AcceptTcpClient(); WebSocketClient w = new WebSocketClient(c); webSocketClientManager.AddClient(w); } } catch (Exception ex) { // log error } } }No tengo problemas para establecer la conexión. Lo que me gustaría es leer/ver de alguna manera si existe 'myParameter' en la URL mientras intenta conectarse.
AIT
var ws = new WebSocket ("ws://example.com/?name=nobita"); ws.SetCookie (new Cookie ("name", "nobita")); public class Chat : WebSocketBehavior { private string _name; ... protected override void OnOpen () { _name = Context.QueryString["name"]; } ... }Alternativamente, puede enviar los parámetros que desea como un mensaje del cliente después de que se complete la conexión, luego en onMessage puede capturar el mensaje y tratarlo como desee.
Cliente WebSocket:
public static void Main (string[] args) { using (var ws = new WebSocket ("ws://..../Laputa")) { ws.OnMessage += (sender, e) => Console.WriteLine ("Parm: " + e.Data); ws.Connect (); ws.Send ("Parameters"); Console.ReadKey (true); } }Servidor:
public class Laputa : WebSocketBehavior { protected override void OnMessage (MessageEventArgs e) { var msg = e.Data == ; Send (msg); } } public class Program { public static void Main (string[] args) { var wssv = new WebSocketServer ("ws://..../Laputa"); wssv.AddWebSocketService<Laputa> ("/Laputa"); wssv.Start (); Console.ReadKey (true); wssv.Stop (); } }