実験として、dart と easyrtc でいくつかのことを試しています。これをダーツバージョンに移植することから始めました(通常、ここにあるnodejsサーバーを介して提供されます)。これは私がそれから作成したものです
編集:コードのどの部分がエラーを引き起こしているかがわかりました。for ループが通過できないデータ オブジェクト プロキシです。通常、setRoomOccupantListener 関数は、ルームの名前と、ルームに接続されているすべてのピアを含むオブジェクトをパラメータとして指定します。クロムでデバッグしたときのオブジェクト レイアウトのスクリーンショットを通常の JavaScript で作成しました。
function connect() {
easyrtc.setRoomOccupantListener(convertListToButtons);
}
function convertListToButtons (roomName, data, isPrimary) {
clearConnectList();
var otherClientDiv = document.getElementById("otherClients");
for(var easyrtcid in data) {
var button = document.createElement("button");
button.onclick = function(easyrtcid) {
return function() {
performCall(easyrtcid);
};
}(easyrtcid);
var label = document.createTextNode(easyrtc.idToName(easyrtcid));
button.appendChild(label);
otherClientDiv.appendChild(button);
}
}
そして、これがクロムでダーツコードをデバッグするときのスクリーンショットです
void connect() {
easyrtc.setRoomOccupantListener(convertListToButtons);
}
void convertListToButtons(roomName, data, isPrimary) {
clearConnectList();
var otherClientDiv = querySelector("#otherClients");
for (var easyrtcid in data) {
var button = document.createElement("button");
button.onClick.listen((event) {
performCall(easyrtcid);
});
button.appendText(easyrtc.idToName(easyrtcid));
otherClientDiv.append(button);
}
}
これは私が得るエラーです:
Class 'Proxy' has no instance getter 'iterator'.
NoSuchMethodError: method not found: 'iterator' Receiver: Instance of 'Proxy' Arguments: []
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:45)
#1 P...<omitted>...7)
ここで単純なものが欠けていますか、それともある種の非互換性ですか? ありがとうございました。