source: uKadecot/trunk/tools/EcnlControllerUI/EcnlControllerUI/WampClient.cs@ 108

Last change on this file since 108 was 108, checked in by coas-nagasima, 9 years ago

MIMEプロパティの変更

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-csharp
File size: 20.4 KB
Line 
1using System;
2using System.Collections;
3using System.Collections.Generic;
4using System.Html;
5using System.Net.WebSockets;
6using System.Diagnostics;
7
8namespace Kadecot
9{
10 public class WampClient
11 {
12 //delegate
13 public delegate void errCallback(string err);
14
15 //WebSocket
16 private WebSocket webSocket;
17
18 private bool challnge_flag;
19 private string url;
20 // private List<string> plotocols;
21 private string[] plotocols = { "wamp.2.json" };
22 private bool on_open_flag;
23 private int request_id;
24 private errCallback errorCallback;
25 private Dictionary<int, int> subscription_id_list;
26 //public string origin{ get; private set;}
27
28 //WAMP SubPlotocol
29 private WampClientCore wampClientCore;
30
31 // Use this for initialization
32 //public void Awake () {
33 public WampClient()
34 {
35 challnge_flag = false;
36 url = null;
37 webSocket = null;
38 on_open_flag = false;
39 errorCallback = null;
40 request_id = 1;
41 subscription_id_list = new Dictionary<int, int>();
42 //origin = "http://UnityKadecotPlugin/";
43
44 wampClientCore = new WampClientCore();
45 }
46
47 // WebSocket Connectioon
48 public void connect(string serverIp)
49 {
50 System.Diagnostics.Debug.WriteLine("[WAMP Client] websocket connecting");
51 if (on_open_flag) {
52 System.Diagnostics.Debug.WriteLine("[WAMP Client] websocket already connected.");
53 return;
54 }
55 if (!String.IsNullOrEmpty(serverIp)) {
56 url = serverIp;//port : 41314
57 }
58 else {
59 url = "ws://localhost:8080/";
60 }
61 webSocket = new WebSocket(url, plotocols);
62 //webSocket.Origin = origin;
63 webSocket.OnOpen += OnOpen;
64 webSocket.OnMessage += OnMessage;
65 webSocket.OnClose += OnClose;
66 webSocket.OnError += OnError;
67
68 //webSocket.Connect();
69 }
70
71 public void disconnect()
72 {
73 System.Diagnostics.Debug.WriteLine("[WAMP Client] websocket disconnecting");
74 webSocket.Close();
75 }
76
77 public void addOpenCallback(WampClientCore.WampCallback callback)
78 {
79 wampClientCore.openCallback = callback;
80 }
81 public void deleteOpenCallback()
82 {
83 wampClientCore.deleteOpenCallback();
84 }
85
86 public void addCloseCallback(WampClientCore.WampCallback callback)
87 {
88 wampClientCore.closeCallback = callback;
89 }
90 public void deleteCloseCallback()
91 {
92 wampClientCore.deleteCloseCallback();
93 }
94
95 public void addGoodbyeCallback(WampClientCore.WampCallbackArgs callback)
96 {
97 wampClientCore.goodbyeCallback = callback;
98 }
99 public void deleteGoodbyeCallback()
100 {
101 wampClientCore.deleteGoodbyeCallback();
102 }
103
104 public void addHeartbeatCallback(WampClientCore.WampCallbackArgs callback)
105 {
106 wampClientCore.heartbeatCallback = callback;
107 }
108 public void deleteHeartbeatCallback()
109 {
110 wampClientCore.deleteHeartbeatCallback();
111 }
112
113 public void addInvocationCallback(int request, WampClientCore.WampCallbackArgs callback)
114 {
115 wampClientCore.invocationCallback[request] = callback;
116 }
117
118 public void deleteInvocationCallback(int request)
119 {
120 wampClientCore.deleteInvocationCallback(request);
121 }
122
123
124 public string sendHello(string realm, string details, WampClientCore.WampCallbackArgs callback)
125 {
126
127 //serialize
128 string data;
129 data = WampSerializer.createHello(realm, details);
130
131 //encrypt data
132
133 //set callback
134 wampClientCore.helloCallback = callback;
135
136 //send data
137 if (on_open_flag == true) {
138 webSocket.Send(data);
139 }
140 else {
141 return null;
142 }
143
144 return data;
145 }
146
147 public string sendAuthenticate(string signature, string extra, WampClientCore.WampCallbackArgs callback)
148 {
149
150 //serialize
151 string data;
152 data = WampSerializer.createAuthenticate(signature, extra);
153
154 //encrypt data
155
156 //set callback
157 wampClientCore.authenticateCallback = callback;
158
159 //send data
160 if (this.on_open_flag) {
161 webSocket.Send(data);
162 }
163 else {
164 return null;
165 }
166
167 return data;
168 }
169
170 public string sendGoodbye(string details, string reason, WampClientCore.WampCallbackArgs callback)
171 {
172
173 //serialize
174 string data;
175 data = WampSerializer.createGoodbye(details, reason);
176
177 //encrypt data
178
179 //set callback
180 wampClientCore.goodbyeCallback = callback;
181
182 //send data
183 if (this.on_open_flag) {
184 webSocket.Send(data);
185 }
186 else {
187 return null;
188 }
189
190 return data;
191 }
192
193 public string sendHeartbeat(int incomingSeq, int outgoingSeq, string discard)
194 {
195
196 //serialize
197 string data;
198 data = WampSerializer.createHeartbeat(incomingSeq, outgoingSeq, discard);
199
200 //encrypt data
201
202 //send data
203 if (this.on_open_flag) {
204 webSocket.Send(data);
205 }
206 else {
207 return null;
208 }
209
210 return data;
211 }
212
213 public string sendError(int type, int request, string details, string error, string arguments, string argumentsKw)
214 {
215
216 //serialize
217 string data;
218 data = WampSerializer.createError(type, request, details, error, arguments, argumentsKw);
219
220 //encrypt data
221
222 //send data
223 if (this.on_open_flag) {
224 webSocket.Send(data);
225 }
226 else {
227 return null;
228 }
229
230 return data;
231 }
232
233
234 public string sendPublish(string options, string topic, string arguments, string argumentsKw, WampClientCore.WampCallbackArgs callback)
235 {
236
237 //serialize
238 string data;
239 int request;
240 request = this.request_id;
241 this.request_id++;
242 data = WampSerializer.createPublish(request, options, topic, arguments, argumentsKw);
243
244 //encrypt data
245
246 //set callback
247 wampClientCore.publishCallback[request] = callback;
248
249 //send data
250 if (this.on_open_flag) {
251 webSocket.Send(data);
252 }
253 else {
254 return null;
255 }
256
257 return data;
258 }
259
260 public string sendSubscribe(string options, string topic, WampClientCore.WampCallbackArgs eventfunc, WampClientCore.WampCallbackArgs callback)
261 {
262
263 //serialize
264 string data;
265 int request;
266 request = this.request_id;
267 this.request_id++;
268 data = WampSerializer.createSubscribe(request, options, topic);
269
270 //encrypt data
271
272 //set callback
273 wampClientCore.subscribeCallback[request] = callback;
274
275 //set event callback
276 wampClientCore.eventCallback[request] = eventfunc;
277
278 //send data
279 if (this.on_open_flag) {
280 webSocket.Send(data);
281 }
282 else {
283 return null;
284 }
285
286 return data;
287 }
288
289 public string sendUnsubscribe(int subscription, WampClientCore.WampCallbackArgs callback)
290 {
291
292 //serialize
293 string data;
294 int request;
295 request = this.request_id;
296 this.request_id++;
297 data = WampSerializer.createUnsubscribe(request, subscription);
298
299 //encrypt data
300
301 //set callback
302 wampClientCore.unsubscribeCallback[request] = callback;
303
304 //set Unsubscribe request id - subscription id
305 this.subscription_id_list[request] = subscription;
306
307 //send data
308 if (this.on_open_flag) {
309 webSocket.Send(data);
310 }
311 else {
312 return null;
313 }
314
315 return data;
316 }
317 /// <summary>
318 /// クライアントからメッセージを送ります
319 /// </summary>
320 /// <param name="options">deviceId</param>
321 /// <param name="procedure"></param>
322 /// <param name="arguments"></param>
323 /// <param name="argumentsKw">入力するデータ</param>
324 /// <param name="callback">コールバック</param>
325 /// <returns>データ</returns>
326 public string sendCall(string options, string procedure, string arguments, string argumentsKw, WampClientCore.WampCallbackArgs callback)
327 {
328
329 //serialize
330 string data;
331 int request;
332 request = this.request_id;
333 this.request_id++;
334 data = WampSerializer.createCall(request, options, procedure, arguments, argumentsKw);
335
336 //encrypt data
337
338 //set callback
339 wampClientCore.callCallback[request] = callback;
340
341 //send data
342 if (on_open_flag == true) {
343 webSocket.Send(data);
344 }
345 else {
346 return null;
347 }
348
349 return data;
350 }
351
352 public string sendCancel(int request, string options, WampClientCore.WampCallbackArgs callback)
353 {
354
355 //serialize
356 string data;
357 data = WampSerializer.createCancel(request, options);
358
359 //encrypt data
360
361 //set callback
362 wampClientCore.cancelCallback[request] = callback;
363
364 //send data
365 if (this.on_open_flag) {
366 webSocket.Send(data);
367 }
368 else {
369 return null;
370 }
371
372 return data;
373 }
374
375 public string sendRegister(string options, string procedure, WampClientCore.WampCallbackArgs callback)
376 {
377
378 //serialize
379 string data;
380 int request;
381 request = this.request_id;
382 this.request_id++;
383 data = WampSerializer.createRegister(request, options, procedure);
384
385 //encrypt data
386
387 //set callback
388 wampClientCore.registerCallback[request] = callback;
389
390 //send data
391 if (this.on_open_flag) {
392 webSocket.Send(data);
393 }
394 else {
395 return null;
396 }
397
398 return data;
399 }
400
401 public string sendUnregister(int registration, WampClientCore.WampCallbackArgs callback)
402 {
403
404 //serialize
405 string data;
406 int request;
407 request = this.request_id;
408 this.request_id++;
409 data = WampSerializer.createUnregister(request, registration);
410
411 //encrypt data
412
413 //set callback
414 wampClientCore.unregisterCallback[request] = callback;
415
416 //send data
417 if (this.on_open_flag) {
418 webSocket.Send(data);
419 }
420 else {
421 return null;
422 }
423
424 return data;
425 }
426
427 public string sendYield(int request, string options, string arguments, string argumentsKw)
428 {
429
430 //serialize
431 string data;
432 data = WampSerializer.createYield(request, options, arguments, argumentsKw);
433
434 //encrypt data
435
436 //send data
437 if (this.on_open_flag) {
438 webSocket.Send(data);
439 }
440
441 return data;
442 }
443
444 public void OnOpen(Event e)
445 {
446 System.Diagnostics.Debug.WriteLine("[WAMP Client] websocket connected");
447 on_open_flag = true;
448
449 WampClientCore.WampCallback callback = wampClientCore.openCallback;
450
451 if (callback != null) {
452 callback();
453 }
454 }
455
456 public void OnClose(Event e)
457 {
458 on_open_flag = false;
459 System.Diagnostics.Debug.WriteLine("[WAMP Client] websocket disconnected");
460 // webSocket = null;
461
462 WampClientCore.WampCallback callback = wampClientCore.closeCallback;
463
464 if (callback != null) {
465 callback();
466 }
467 }
468
469 public void OnError(Event e)
470 {
471 System.Diagnostics.Debug.WriteLine("[WAMP Client] websocket error");
472
473 dynamic/*ErrorEventArgs*/eea = (dynamic/*ErrorEventArgs*/)e;
474
475 System.Diagnostics.Debug.WriteLine("[wamp OnError] msg :" + (string)eea.message);
476 if (errorCallback != null) {
477 errorCallback(eea.message);
478 }
479 }
480
481
482 public void OnMessage(Event e)
483 {
484 dynamic/*MessageEventArgs*/ msg = (dynamic/*MessageEventArgs*/)e;
485
486 //System.Diagnostics.Debug.WriteLine("[wamp perser] msg :" + msg.ToString());
487 object data;
488 WampClientCore.WampCallbackArgs callback = null;
489
490 //decrypt data
491
492 //deserialize
493 if (msg.data != null) {
494 data = WampDeserializer.Parse(msg.data);
495 }
496 else {
497 data = WampDeserializer.Parse((string)msg);
498 }
499 if (data == null) {
500 System.Diagnostics.Debug.WriteLine("[wamp perser] Syntax error");
501 return;
502 }
503
504 List<object> list = (List<object>)data;
505 Int64 switchData = (Int64)list[0];
506 switch (switchData) {
507 case (Int64)WAMP_MSG_TYPE.WELCOME:
508 // WAMP SPEC: [WELCOME, Session|id, Details|dict]
509 if (this.challnge_flag) {
510 this.challnge_flag = false;
511 callback = wampClientCore.authenticateCallback;
512 if (callback != null) {
513 callback(data);
514 }
515 else {
516 System.Diagnostics.Debug.WriteLine("[wamp perser] WELCOME Callback does not exist.");
517 }
518 }
519 else {
520 callback = wampClientCore.helloCallback;
521 if (callback != null) {
522 callback(data);
523 }
524 else {
525 System.Diagnostics.Debug.WriteLine("[wamp perser] WELCOME Callback does not exist.");
526 }
527 }
528 break;
529 case (Int64)WAMP_MSG_TYPE.ABORT:
530 // WAMP SPEC: [ABORT, Details|dict, Reason|uri]
531 if (this.challnge_flag) {
532 this.challnge_flag = false;
533 callback = wampClientCore.authenticateCallback;
534 if (callback != null) {
535 callback(data);
536 }
537 else {
538 System.Diagnostics.Debug.WriteLine("[wamp perser] ABORT Callback does not exist.");
539 }
540 }
541 else {
542 callback = wampClientCore.helloCallback;
543 if (callback != null) {
544 callback(data);
545 }
546 else {
547 System.Diagnostics.Debug.WriteLine("[wamp perser] ABORT Callback does not exist.");
548 }
549 }
550 break;
551 case (Int64)WAMP_MSG_TYPE.CHALLENGE:
552 // advanced WAMP SPEC: [CHALLENGE, AuthMethod|string, Extra|dict]
553 this.challnge_flag = true;
554 callback = wampClientCore.helloCallback;
555 if (callback != null) {
556 callback(data);
557 }
558 else {
559 System.Diagnostics.Debug.WriteLine("[wamp perser] CHALLENGE Callback does not exist.");
560 }
561 break;
562
563 case (Int64)WAMP_MSG_TYPE.GOODBYE:
564 // WAMP SPEC: [GOODBYE, Details|dict, Reason|uri]
565 callback = wampClientCore.goodbyeCallback;
566 if (callback != null) {
567 callback(data);
568 }
569 else {
570 System.Diagnostics.Debug.WriteLine("[wamp perser] GOODBYE Callback does not exist.");
571 }
572 break;
573 case (Int64)WAMP_MSG_TYPE.HEARTBEAT:
574 // advanced WAMP SPEC: [AUTHENTICATE, Signature|string, Extra|dict]
575 callback = wampClientCore.heartbeatCallback;
576 if (callback != null) {
577 callback(data);
578 }
579 else {
580 System.Diagnostics.Debug.WriteLine("[wamp perser] HEARTBEAT Callback does not exist.");
581 }
582 break;
583 case (Int64)WAMP_MSG_TYPE.ERROR: {
584 // WAMP SPEC: [ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri, (Arguments|list, ArgumentsKw|dict)]
585 Int64 switchDataSec = (Int64)list[1];
586 int request = (int)((Int64)list[2]);
587 switch (switchDataSec) {
588 case (Int64)WAMP_MSG_TYPE.SUBSCRIBE:
589 // WAMP SPEC: [ERROR, SUBSCRIBE, SUBSCRIBE.Request|id, Details|dict, Error|uri]
590 callback = wampClientCore.subscribeCallback[request];
591 if (callback != null) {
592 callback(data);
593 }
594 else {
595 System.Diagnostics.Debug.WriteLine("[wamp perser] SUBSCRIBE Callback does not exist.");
596 }
597 break;
598 case (Int64)WAMP_MSG_TYPE.UNSUBSCRIBE:
599 // WAMP SPEC: [ERROR, UNSUBSCRIBE, UNSUBSCRIBE.Request|id, Details|dict, Error|uri]
600 callback = wampClientCore.unsubscribeCallback[request];
601 if (callback != null) {
602 callback(data);
603 }
604 else {
605 System.Diagnostics.Debug.WriteLine("[wamp perser] UNSUBSCRIBE Callback does not exist.");
606 }
607 break;
608 case (Int64)WAMP_MSG_TYPE.PUBLISH:
609 // WAMP SPEC: [ERROR, PUBLISH, PUBLISH.Request|id, Details|dict, Error|uri]
610 callback = wampClientCore.publishCallback[request];
611 if (callback != null) {
612 callback(data);
613 }
614 else {
615 System.Diagnostics.Debug.WriteLine("[wamp perser] PUBLISH Callback does not exist.");
616 }
617 break;
618 case (Int64)WAMP_MSG_TYPE.INVOCATION:
619 // WAMP SPEC: [ERROR, INVOCATION, INVOCATION.Request|id, Details|dict, Error|uri]
620 // WAMP SPEC: [ERROR, INVOCATION, INVOCATION.Request|id, Details|dict, Error|uri, Arguments|list]
621 // WAMP SPEC: [ERROR, INVOCATION, INVOCATION.Request|id, Details|dict, Error|uri, Arguments|list, ArgumentsKw|dict]
622 callback = wampClientCore.invocationCallback[request];
623 if (callback != null) {
624 callback(data);
625 }
626 else {
627 System.Diagnostics.Debug.WriteLine("[wamp perser] INVOCATION Callback does not exist.");
628 }
629 break;
630 case (Int64)WAMP_MSG_TYPE.CALL:
631 // WAMP SPEC: [ERROR, CALL, CALL.Request|id, Details|dict, Error|uri]
632 // WAMP SPEC: [ERROR, CALL, CALL.Request|id, Details|dict, Error|uri, Arguments|list]
633 // WAMP SPEC: [ERROR, CALL, CALL.Request|id, Details|dict, Error|uri, Arguments|list, ArgumentsKw|dict]
634 callback = wampClientCore.callCallback[request];
635 if (callback != null) {
636 callback(data);
637 }
638 else {
639 System.Diagnostics.Debug.WriteLine("[wamp perser] CALL Callback does not exist.");
640 }
641 break;
642 case (Int64)WAMP_MSG_TYPE.REGISTER:
643 // WAMP SPEC: [ERROR, REGISTER, REGISTER.Request|id, Details|dict, Error|uri]
644 callback = wampClientCore.registerCallback[request];
645 if (callback != null) {
646 callback(data);
647 }
648 else {
649 System.Diagnostics.Debug.WriteLine("[wamp perser] REGISTER Callback does not exist.");
650 }
651 break;
652 case (Int64)WAMP_MSG_TYPE.UNREGISTER:
653 // WAMP SPEC: [ERROR, UNREGISTER, UNREGISTER.Request|id, Details|dict, Error|uri]
654 callback = wampClientCore.unregisterCallback[request];
655 if (callback != null) {
656 callback(data);
657 }
658 else {
659 System.Diagnostics.Debug.WriteLine("[wamp perser] UNREGISTER Callback does not exist.");
660 }
661 break;
662 default:
663 return;
664 }
665 break;
666 }
667
668 case (Int64)WAMP_MSG_TYPE.PUBLISHED:
669 // WAMP SPEC: [PUBLISHED, PUBLISH.Request|id, Publication|id]
670 callback = wampClientCore.publishCallback[(int)((Int64)(list[1]))];
671 if (callback != null) {
672 callback(data);
673 }
674 else {
675 System.Diagnostics.Debug.WriteLine("[wamp perser] Callback does not exist.");
676 }
677 break;
678 case (Int64)WAMP_MSG_TYPE.SUBSCRIBED:
679 // WAMP SPEC: [SUBSCRIBED, SUBSCRIBE.Request|id, Subscription|id]
680 int reqId = (int)((Int64)(list[1]));
681 int subId = (int)((Int64)(list[2]));
682 callback = wampClientCore.subscribeCallback[reqId];
683 if (callback != null) {
684 wampClientCore.eventCallback[subId] = wampClientCore.eventCallback[reqId];
685 wampClientCore.deleteEventCallback(reqId);
686 callback(data);
687 }
688 else {
689 System.Diagnostics.Debug.WriteLine("[wamp perser] Callback does not exist.");
690 }
691 break;
692 case (Int64)WAMP_MSG_TYPE.UNSUBSCRIBED:
693 // WAMP SPEC: [UNSUBSCRIBED, UNSUBSCRIBE.Request|id]
694 callback = wampClientCore.unsubscribeCallback[(int)((Int64)(list[1]))];
695 if (callback != null) {
696 wampClientCore.deleteEventCallback(this.subscription_id_list[(int)((Int64)(list[1]))]);
697 callback(data);
698 }
699 else {
700 System.Diagnostics.Debug.WriteLine("[wamp perser] Callback does not exist.");
701 }
702 break;
703 case (Int64)WAMP_MSG_TYPE.EVENT:
704 // WAMP SPEC: [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict]
705 // WAMP SPEC: [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list]
706 // WAMP SPEC: [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list, PUBLISH.ArgumentKw|dict]
707 callback = wampClientCore.eventCallback[(int)((Int64)(list[1]))];
708 if (callback != null) {
709 callback(data);
710 }
711 else {
712 System.Diagnostics.Debug.WriteLine("[wamp perser] Callback does not exist.");
713 }
714 break;
715 case (Int64)WAMP_MSG_TYPE.RESULT:
716 // WAMP SPEC: [RESULT, CALL.Request|id, Details|dict]
717 // WAMP SPEC: [RESULT, CALL.Request|id, Details|dict, YIELD.Arguments|list]
718 // WAMP SPEC: [RESULT, CALL.Request|id, Details|dict, YIELD.Arguments|list, YIELD.ArgumentsKw|dict]
719 callback = wampClientCore.callCallback[(int)((Int64)(list[1]))];
720 if (callback != null) {
721 callback(data);
722 }
723 else {
724 System.Diagnostics.Debug.WriteLine("[wamp perser] RESULT Callback does not exist.");
725 }
726 break;
727
728 case (Int64)WAMP_MSG_TYPE.REGISTERED:
729 // WAMP SPEC: [REGISTERED, REGISTER.Request|id, Registration|id]
730 callback = wampClientCore.registerCallback[(int)((Int64)(list[1]))];
731 if (callback != null) {
732 callback(data);
733 }
734 else {
735 System.Diagnostics.Debug.WriteLine("[wamp perser] Callback does not exist.");
736 }
737 break;
738 case (Int64)WAMP_MSG_TYPE.UNREGISTERED:
739 // WAMP SPEC: [UNREGISTERED, UNREGISTER.Request|id]
740 callback = wampClientCore.unregisterCallback[(int)((Int64)(list[1]))];
741 if (callback != null) {
742 callback(data);
743 }
744 else {
745 System.Diagnostics.Debug.WriteLine("[wamp perser] Callback does not exist.");
746 }
747 break;
748 case (Int64)WAMP_MSG_TYPE.INVOCATION:
749 // WAMP SPEC: [INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict]
750 // WAMP SPEC: [INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list]
751 // WAMP SPEC: [INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list, CALL.ArgumentsKw|dict]
752 callback = wampClientCore.invocationCallback[(int)((Int64)(list[1]))];
753 if (callback != null) {
754 callback(data);
755 }
756 else {
757 System.Diagnostics.Debug.WriteLine("[wamp perser] Callback does not exist.");
758 }
759 break;
760 case (Int64)WAMP_MSG_TYPE.INTERRUPT:
761 // advanced WAMP SPEC: [INTERRUPT, INVOCATION.Request|id, Options|dict]
762 callback = wampClientCore.interruptCallback[(int)((Int64)(list[1]))];
763 if (callback != null) {
764 callback(data);
765 }
766 else {
767 System.Diagnostics.Debug.WriteLine("[wamp perser] Callback does not exist.");
768 }
769 break;
770 default:
771 System.Diagnostics.Debug.WriteLine("[wamp perser] Unknown Message Type.\n" + list.ToString());
772 break;
773 }
774 }
775 public bool isConnecting()
776 {
777 return on_open_flag;
778 }
779 }
780}
Note: See TracBrowser for help on using the repository browser.