首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:使用--enable-mirrors=false导入dart:mirrors

错误:使用--enable-mirrors=false导入dart:mirrors
EN

Stack Overflow用户
提问于 2019-02-07 17:43:59
回答 1查看 811关注 0票数 0

我对flutter开发还是个新手。当从包socket_io: ^0.9.0+1中执行import 'package:socket_io/socket_io.dart';时,会出现上述错误

我正在尝试将node js后端套接字连接到flutter应用程序。我不使用模拟器,而是使用三星Tab作为外部设备。

这是我的客户端程序

代码语言:javascript
复制
    void main() {
  var io = new Server();
    var nsp = io.of('/some');
    nsp.on('connection', (Socket client) {
      print('connection /some');
      client.on('msg', (data) {
        print('data from /some => $data');
        client.emit('fromServer', "ok 2");
      });
    });
      io.on('connection', (Socket client) {
        print('connection default namespace');
        client.on('msg', (data) {
          print('data from default => $data');
          client.emit('fromServer', "ok");
        });
      });
      io.listen(3000);

    // Dart client
    IO.Socket socket = IO.io('http://localhost:3000');
    socket.on('connect', (_) {
     print('connect');
     socket.emit('msg', 'test');
    });
    socket.on('event', (data) => print(data));
    socket.on('disconnect', (_) => print('disconnect'));
    socket.on('fromServer', (_) => print(_));
  runApp(new MyApp());
  }

这是pubspec.ymal

代码语言:javascript
复制
: chat_app
description: A new Flutter project.

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# Read more about versioning at semver.org.
version: 1.0.0+1

environment:
  sdk: ">=2.0.0-dev.68.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  socket_io: ^0.9.0+1
  socket_io_client: ^0.9.1
  http: ^0.12.0
  reflectable: ^2.0.9


dev_dependencies:
  flutter_test:
    sdk: flutter


# For information on the generic Dart part of this file, see the
# following page: https://www.dartlang.org/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

这是我的后端服务,它在节点中写得很好

代码语言:javascript
复制
 const express = require('express')
const app = express()
var mongoose = require("mongoose")
var path = require('path');
var cors = require("cors");
users=[];
app.use(cors())
'use strict';
var jwt = require('jsonwebtoken');
var iss = "Blitzkrieg Software";
var sub = "joe@user.org";
var aud = "http://blitzkriegsoftware.net";



const fs = require('fs');
var privateKey = `-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCETEqGDNQQKnHp1HV3VNmbp30LP2ErB7b4BMQEbMN1YMSAVwll
jhVvxEs0fI6vax0vFUNLSbSPG4o4Kkrunc+tODUvYJbN7Ejv5lZptVvcfvyUJKBQ
N8NYTucxGyVhS8jiYbev7no5ZHoAGDlzTYunzfWiPJ+81lHVjgsEVwHIqwIDAQAB
AoGAbm17uv6UN9Yl9Uaose16IcmgvzWs9oze9ZCMySC72YrnGjUMG9+IFx2ipHHf
a56d4oH+BKbF9rnHGnB60UeaY0lQN/dYMk+s3xzyHAW1eKYfIaRyJujtG329VJii
Y5JK5Avfctn9/nP8za2Ncxl6qPrWxIQ+fE2/kSHTxsFJB3kCQQC/oQyjpmSH2p6c
aAO9H0p0ikjknEidPMxKnpGxqnpevR17OCKPFcKIXkZST23caG7iUhuLLw4B6DV6
KnvFJR2NAkEAsL0f+WzLIE5U/Jii2t0fupTs+iWkpgYX6BHlNi9HqffO4i+SHt4r
kizkjxqBexaHThgMF1txf+jl7T7hanHlFwJBAKll5tRr7QajXf8Je/SdSqZG8DUX
aqGE81srXcPe3hoNt5gLgZFXPQZrwGJW0Nk8gHkU+EBLsmhBK7T5BTy7mKkCQBej
I6ybNUt7znf9/gHhgwXUNyF5eVzPAdGC2zH0/tOnld7AV/2S3ybspCDTfa+1oqD6
LFvPWg2uW1nwh/tRgj8CQH8wTj5Nn0srrSeW4WUj90aJY4Ec0PQLdzAW8fSr/jdj
hYCQv/Cz9xxCyeTfZC37sahbyc5UbXNtsRH7saYxogQ=
-----END RSA PRIVATE KEY-----`;
var publicKey = `-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCETEqGDNQQKnHp1HV3VNmbp30LP2ErB7b4BMQEbMN1YMSAVwll
jhVvxEs0fI6vax0vFUNLSbSPG4o4Kkrunc+tODUvYJbN7Ejv5lZptVvcfvyUJKBQ
N8NYTucxGyVhS8jiYbev7no5ZHoAGDlzTYunzfWiPJ+81lHVjgsEVwHIqwIDAQAB
AoGAbm17uv6UN9Yl9Uaose16IcmgvzWs9oze9ZCMySC72YrnGjUMG9+IFx2ipHHf
a56d4oH+BKbF9rnHGnB60UeaY0lQN/dYMk+s3xzyHAW1eKYfIaRyJujtG329VJii
Y5JK5Avfctn9/nP8za2Ncxl6qPrWxIQ+fE2/kSHTxsFJB3kCQQC/oQyjpmSH2p6c
aAO9H0p0ikjknEidPMxKnpGxqnpevR17OCKPFcKIXkZST23caG7iUhuLLw4B6DV6
KnvFJR2NAkEAsL0f+WzLIE5U/Jii2t0fupTs+iWkpgYX6BHlNi9HqffO4i+SHt4r
kizkjxqBexaHThgMF1txf+jl7T7hanHlFwJBAKll5tRr7QajXf8Je/SdSqZG8DUX
aqGE81srXcPe3hoNt5gLgZFXPQZrwGJW0Nk8gHkU+EBLsmhBK7T5BTy7mKkCQBej
I6ybNUt7znf9/gHhgwXUNyF5eVzPAdGC2zH0/tOnld7AV/2S3ybspCDTfa+1oqD6
LFvPWg2uW1nwh/tRgj8CQH8wTj5Nn0srrSeW4WUj90aJY4Ec0PQLdzAW8fSr/jdj
hYCQv/Cz9xxCyeTfZC37sahbyc5UbXNtsRH7saYxogQ=
-----END RSA PRIVATE KEY-----`;
var exp = 24;
var signOptions = {
    issuer : iss,
    subject: sub,
    audience: aud,
    expiresIn: exp,
    algorithm: "RS256"
};

var payload = { };

// Populate with fields and data
payload.field01 = "Data 01";
payload.field02 = "Data 02";
payload.field03 = "Data 03";
var token = jwt.sign(payload, publicKey, signOptions);
console.log("Token: " + token);
var decoded = jwt.decode(token, {complete: true});
console.log("Docoded Header: " + JSON.stringify( decoded.header));
console.log("Docoded Payload: " +  JSON.stringify(decoded.payload));

app.use(express.static('public'))
app.use(cors());
app.get('/',(req,res)=>{

    res.render('index')
    res.status=600;

})





server = app.listen(3000,"0.0.0.0");




// app.get('/', function (req, res) { 
//     res.header("Access-Control-Allow-Origin", "*");
//     res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
//     res.writeHead(200, {'Content-Type': 'text/plain'});
//     contents = fs.readFileSync("sliderImages.json", "utf8");
//     console.log(path.join(__dirname, '/sliderImages.json'));
//     res.end(contents);
//  });
const io= require('socket.io')(server)
io.on('connection', (socket) => {
    var dbUrl = 'mongodb://brad:1234@localhost:27017/bawa'
    mongoose.connect(dbUrl ,{ useNewUrlParser: true }, (err,db) => { 
        // db.collection("customers").insertOne({"first_name":"gahsat","last_name":"assdf"}, function(err, res) {
        //     if (err) throw err;
        //     console.log("1 document inserted");
        //     db.close();
        //   });

        //   db.collection("customers").find({}, { projection: { _id: 0, first_name: 1, last_name: 1 } }).toArray(function(err, result) {
        //     if (err) throw err;
        //     console.log(result);
        //     db.close();
        //   });
        console.log('Db connected',err);
     })

    console.info('New user connected'+socket.id)

    //default username
    socket.userId = "Anonymous"

    //listen on change_username
    socket.on('change_userId', (data) => {
        console.info('change_userId: ' + data);
        socket.userId = data.userId
    })
    socket.on('register', (data) => {
        console.info('New user cregonnected '+socket.id)
        console.info('register: ' + data);
        socket.userId = data.userId
    })

    socket.on('disconnect', (data) => {
        console.info('change_userId: ' + data);
        socket.userId = data.userId
    })

    socket.on('send message', (data) => {
        console.info('New user sen '+socket.id)
        //var a=JSON.parse(data)
        console.info('messasge: ' + data["kk"]);
        io.sockets.emit('get user','sdfgsdfgsdf')
    })

    //listen on new_message
    socket.on('new_message', async (data) => {
        //broadcast the new message
        let chat = chatDb.chats.find(_chat => _chat.id === data.chatId);
        chat.dialog = [
            ...chat.dialog,
            data.message
        ];
        let userId = data.message.who;
        let contactId = data.contactId;
        const user = chatDb.user.find(_user => _user.id === userId);
        console.info('new_message User: ' + JSON.stringify(user));
        const contact = chatDb.user.find(_user => _user.id === contactId);
        console.info('new_message Contact: ' + JSON.stringify(contact));
        user.chatList.find(_contact => _contact.contactId === contactId).lastMessageTime = data.message.time;
        contact.chatList.find(_contact => _contact.contactId === userId).lastMessageTime = data.message.time;
        console.info('new_message: ' + JSON.stringify(data));
        io.sockets.emit('new_message', {userId: userId, contactId: contactId, chatId: data.chatId, message: data.message});
    })

    //listen on typing
    socket.on('typing', (data) => {
        socket.broadcast.emit('typing', {userId : socket.userId, chatId: data.chatId})
    })
});



console.log('Server Started')

我希望我找不到答案,为什么会发生这种情况,以及如何解决。请帮帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-07 18:40:18

socket_io包与Flutter不兼容。因此,您不能在颤动应用程序中使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54570392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档