2017-10-14 1 views
2

使用:私はダートでのWebSocket接続しようとしている角度ダートでWebSocketを

EXCEPTION: 'dart:io-patch/platform_patch.dart': error: line 25: native function 'Platform_GetVersion' (0 arguments) cannot be found 
    static String _version() native "Platform_GetVersion"; 
^

STACKTRACE: 
platform_impl.dart 110        _Platform.version 
platform.dart 73         Platform._version 
platform.dart 73         Platform._version 
platform.dart 229         Platform.version 
http_impl.dart 2843         _getHttpVersion 
http_impl.dart 1672         new _HttpClient 
http.dart 1338          new HttpClient 
websocket_impl.dart 968        _WebSocketImpl._httpClient 
websocket_impl.dart 968        _WebSocketImpl._httpClient 
websocket_impl.dart 994        _WebSocketImpl.connect 
websocket.dart 319         WebSocket.connect 
package:atomcomponents/util/sock.dart 44:20   Sock.connect 
package:atomcomponents/util/sock.dart 35:21   new Sock.<fn> 
dart:async           _ZoneDelegate.runUnary 
package:angular2/src/core/zone/ng_zone.dart 184:21 NgZone._runUnary 
dart:async           _ZoneDelegate.runUnary 
package:angular2/src/core/zone/ng_zone.dart 184:21 NgZone._runUnary 



VM276:1 EXCEPTION: NoSuchMethodError: The method 'openUrl' was called on null. 
Receiver: null 
Tried calling: openUrl("GET", Instance of '_Uri') 
STACKTRACE: 
dart:core           Object.noSuchMethod 
websocket_impl.dart 994        _WebSocketImpl.connect 
websocket.dart 319         WebSocket.connect 
package:atomcomponents/util/sock.dart 44:20   Sock.connect 
package:atomcomponents/util/sock.dart 32:21   new Sock.<fn> 
dart:async           _ZoneDelegate.runUnary 
package:angular2/src/core/zone/ng_zone.dart 184:21 NgZone._runUnary 
dart:async           _ZoneDelegate.runUnary 
package:angular2/src/core/zone/ng_zone.dart 184:21 NgZone._runUnary 

:できるだけ早く私はconnect()呼び出すよう

@Injectable() 
class Sock { 

    ... 

    Future<WebSocket> connect() async { 
     return WebSocket.connect("ws://...."); 
    } 


} 

を、私は無関係と思われるエラーを見ています誰かが私がbootstrap

// bootstrap angular2 
bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS, 
    provide(APP_BASE_HREF, useValue: '/'), 
    provide(LocationStrategy, useClass: HashLocationStrategy), 
    provide(BrowserClient, useFactory:() => new BrowserClient(), deps: []) 
]); 

これは、しかし、任意のDを行っていないにBrowserClientを追加することが示唆されましたつまり、同じ巨大なスタックトレースではまだWebSocket.connectが失敗しています。

以前のコードでは、new WebSocket("ws://...");が使用されていましたが、WebSocketは現在抽象クラスになっており、そのコンストラクタは非推奨です。

@Deprecated('This constructor will be removed in Dart 2.0. Use `implements`' 
     ' instead of `extends` if implementing this abstract class.') 
    WebSocket(); 

ドキュメントは、文字通りのみ、それを言及: https://webdev.dartlang.org/angular/guide/server-communication

のWebSocketプロトコルは、もう一つの重要な通信技術です。 このページでは説明していません。

私はAngular 3.1.0上だとDart 1.24.2

はWebSocketをを角度で使用することができますし、もしそうなら、どのようなそれを動作させるために不足していますか?

答えて

1

うーん、私はいくつかの理由でソケットのバックエンドの実装を使用していたようで、dart:ioから私のインポートを変更し、それが今取り組んでいます。

import 'dart:html'; 

そして、これが接続されている:

new WebSocket("ws://..."); 
関連する問題