更改飞镖websocket上的设置

时间:2013-11-17 16:47:09

标签: websocket dart

我试着摆弄一下,但看到dart在内部使用了一些包装类,我不知道如何设置套接字的设置。特别是我尝试创建一个低延迟websocket服务器,所以我想更改TCP_NODELAY标志(是否有任何其他相关的标志/设置低延迟?)。

我现在的代码如下。在测试时看到非常高的延迟,我认为这是因为TCP_NODELAY。使用一个简单的node.js套接字服务器,我确实可以获得较低的延迟。

import 'dart:io';
import 'dart:async';

import 'package:route/server.dart'; 

var port = 7654; 

void main() {  
  HttpServer.bind(InternetAddress.ANY_IP_V4, port) 
    .then((HttpServer server) { 

      print('listening for connections on $port');

      var router = new Router(server);
      router.serve('/ws').transform(new WebSocketTransformer()).listen(blub);
      router.serve('/').listen((req) {
          req.response..write('foo ${new DateTime.now().millisecondsSinceEpoch}')..close();
        });
    },
    onError: (error) => print("Error starting HTTP server: $error"));
}

void blub(WebSocket ws) { 

  print("@@ $ws");
  ws.listen((obj) {
    ws.add(obj); 
    print("@@ $obj ${new DateTime.now().millisecondsSinceEpoch}");
  });
}

1 个答案:

答案 0 :(得分:2)