小编Hum*_*EIZ的帖子

无法使用twisted.web.AGENT向django服务器发出http请求

我已经编写了一个基本的tcp服务器工厂,服务器客户端和使用twisted的服务.tcp服务器充当django服务器和另一个程序之间的中间件(让我们称之为客户端程序).

我想要实现的目标 -

1. 客户端请求中间件 tcp服务器;

2.it发送一个字符串作为请求体;

3. 中间件 tcp服务器反序列化请求中的信息.

4. 中间件将序列化信息进一步发送到django服务器.

5.然后,django服务器响应中间件服务器,该服务器在序列化响应后进一步响应客户端.

我能够到达第3步,但无法向django服务器发出任何http请求.

以下是我的middleware.py

from twisted.internet.protocol import ServerFactory
from twisted.internet.protocol import Protocol

from test_service import MyService


class TCPServerProtocol(Protocol):
    data = ''

    def connectionMade(self):
        self.deferred = self.factory.service.deferred
        self.deferred.addCallback(self.factory.service.s)
        self.deferred.addCallback(self.transport.write)
        self.deferred.addBoth(lambda r: self.transport.loseConnection)

    def dataReceived(self, data):
        self.data += data

    def connectionLost(self, reason):
        self.forward(self.data)

    def forward(self, data):
        if self.deferred is not None:
            d, self.deferred = self.deferred, None
            d.callback(data) …
Run Code Online (Sandbox Code Playgroud)

twisted tcpserver twisted.web python-2.7

8
推荐指数
1
解决办法
232
查看次数

如何使用jQuery创建类似于甘特图的图表?

我是jQuery的新手,并试图修改现有的甘特图插件,以获得一个有几个月而不是几天的图表,但无济于事.有人可以帮我把三维日期数组转换成一个只包含月份和年份的二维数据(因为我猜这可能是解决这个问题的方法)?如果我对解决方案有误,请给我一个.先感谢您.

// Creates a 3 dimensional array [year][month][day] of every day 
    // between the given start and end dates
    function getDates(start, end) {
        var dates = [];
        dates[start.getFullYear()] = [];
        dates[start.getFullYear()][start.getMonth()] = [start]
        var last = start;
        while (last.compareTo(end) == -1) {
            var next = last.clone().addDays(1);
            if (!dates[next.getFullYear()]) { dates[next.getFullYear()] = []; }
            if (!dates[next.getFullYear()][next.getMonth()]) { 
                dates[next.getFullYear()][next.getMonth()] = []; 
            }
            dates[next.getFullYear()][next.getMonth()].push(next);
            last = next;
        }
        return dates;
    }
Run Code Online (Sandbox Code Playgroud)

jquery gantt-chart

7
推荐指数
3
解决办法
2万
查看次数

force.start()在d3的强制布局中将x,y,px和py初始化为NaN

我正在尝试编写D3构造的包装库,并为以下一个http://vallandingham.me/gates_bubbles/遇到了障碍.这是用咖啡脚本写的,我把它翻译成了javascript.这是代码:

(function () {
var $, DD3;

DD3 = window.DD3 = {};

$ = jQuery;



function AJAX(uri, cons) {
    $.ajax({
        url: uri,
        type: 'GET',
        dataType: 'json',
        async: true,
        error: function (jqXHR, textStatus, errorThrown) {
            alert(uri);
        }
    }).done(function (data) {
        cons.data = data;
        cons.generate();

    });
}
// Other constructs
DD3.Bubble_Force = (function(){
    function Bubble_Force(options){
        if (!(this instanceof DD3.Bubble_Force)) {
            return new DD3.Bubble_Force(options);
        }
        if (typeof options.element === 'string') {
            this.el = $(document.getElementById(options.element));
        } else {
            this.el = $(options.element);
        } …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js

5
推荐指数
0
解决办法
1857
查看次数

扭曲:将数据写入同一套接字后,如何从客户端套接字读取?

我正在尝试编写一个扭曲的简单TCP服务器,该服务器必须按顺序执行以下操作:

  1. 客户端连接到服务器,并且KEEPALIVE该连接的标志设置为1。
  2. 服务器从客户端接收数据。
  3. 然后,它计算出一个列表响应。
  4. 然后,服务器在等待客户端之间的显式ACK的同时,依次发送列表中的每个项目,即,从列表中发送单个项目之后,服务器仅在接收到ACK之后,才等待客户端的ACK数据包。是否以相同的方式继续发送其余项目。

以下是代码:

class MyFactory(ServerFactory):
    protocol = MyProtocol

    def __init__(self, service):
        self.service = service

class MyProtocol(Protocol):

    def connectionMade(self):
         try:
             self.transport.setTcpKeepAlive(1)
         except AttributeError: 
             pass
         self.deferred = Deferred()
         self.deferred.addCallback(self.factory.service.compute_response)
         self.deferred.addCallback(self.send_response)

    def dataReceived(self, data):
         self.fire(data)

    def fire(self, data):
        if self.deferred is not None:
            d, self.deferred = self.deferred, None
            d.callback(data)

    def send_response(self, data):
        for item in data:
            d = Deferred()
            d.addCallback(self.transport.write)
            d.addCallback(self.wait_for_ack)
            d.callback(item)
        return   

    def wait_for_ack(self, dummy):
        try:
            self.transport.socket.recv(1024)
        except socket.error as e:
            print e
        return
Run Code Online (Sandbox Code Playgroud)

在运行服务器和客户端时,出现以下异常:

Resource temporarily …

python sockets tcp twisted twisted.internet

-1
推荐指数
1
解决办法
1667
查看次数