2
我试图连接在镖的WebSocket:只要我叫connect()
在角使用的WebSockets飞镖
@Injectable()
class Sock {
...
Future<WebSocket> connect() async {
return WebSocket.connect("ws://....");
}
}
,我看到这似乎不相关的错误:
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
有人建议我加BrowserClient到bootstrap
// bootstrap angular2
bootstrap(AppComponent, [
ROUTER_PROVIDERS,
provide(APP_BASE_HREF, useValue: '/'),
provide(LocationStrategy, useClass: HashLocationStrategy),
provide(BrowserClient, useFactory:() => new BrowserClient(), deps: [])
]);
但是,这是不作出任何d ifference,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
能的WebSockets与角度使用,如果是的话,缺什么,使其工作?