小编Dan*_*Dan的帖子

Nodejs流媒体

我想用Nodejs实现一个简单的客户端 - 服务器连接.但我遇到了以下问题.

考虑一下代码

server.js:

var net = require('net'),
    sys = require('sys');

    net.createServer(onConnection).listen(8124);

    function onConnection(socket) {
     socket.setNoDelay(true);

     socket.addListener("connect", function () {
      sys.puts('client connected: ' + this.remoteAddress);
     });

     socket.addListener("data", function (data) {
      sys.puts("message: \n" + data + "\n - end of msg.");
     });

     socket.addListener("end", function () {
      sys.puts('end of connection');
      this.end();
     });
    }

    sys.puts('Server running at 127.0.0.1:8124');
Run Code Online (Sandbox Code Playgroud)

client.js:

var net = require('net'),
 sys = require('sys');

var stream = net.createConnection(8124);
stream.addListener("connect", function(){
 sys.puts('connected');

 stream.write('a');
    stream.flush();
 stream.write('b');
    stream.flush();

});

stream.addListener("data", function(data){
 sys.puts("Message: \n" …
Run Code Online (Sandbox Code Playgroud)

sockets streaming node.js

12
推荐指数
1
解决办法
1万
查看次数

JavaScript中的原型

在JavaScript中你可以用许多不同的方式做同样的事情.

考虑一下例子:

1:

function Circle(radius) {
 return {
  "r" : radius,
  "area" : function(){
   return Circle.pi * this.r * this.r; 
  }
 }
}
Circle.pi = 3.14159;

var a = Circle(10);
alert(a.area());
Run Code Online (Sandbox Code Playgroud)

2:

function Circle(radius) {
    this.r = radius;
}

Circle.pi = 3.14159;
Circle.prototype.area = function(){
 return Circle.pi * this.r * this.r; 
}

var a = new Circle(10);
alert(a.area());
Run Code Online (Sandbox Code Playgroud)

第二个比第一个好,因为我们没有为Circle的任何实例定义相同的功能区域.

但让我们考虑3:

function Circle(radius) {
 return {
  "r" : radius,
  "area" : Circle.area
 }
}
Circle.pi = 3.14159; …
Run Code Online (Sandbox Code Playgroud)

javascript oop

5
推荐指数
1
解决办法
1417
查看次数

标签 统计

javascript ×1

node.js ×1

oop ×1

sockets ×1

streaming ×1