小编rod*_*rod的帖子

格式化消息以从python客户端发送到socket.io node.js服务器

我正在尝试通过向服务器发送自定义事件,使用Socket.io 0.7让Python客户端与Node.js服务器通信.

基于我在GitHub上找到的Socket.io引用,以及下面的WebSocket Python库.

到目前为止,这是我的代码:

节点服务器

io.sockets.on('connection', function (socket) {
  socket.on('newimg', function(data) {
        console.log(data);
  });
});
Run Code Online (Sandbox Code Playgroud)

Python客户端

def handshake(host, port):
    u = urlopen("http://%s:%d/socket.io/1/" % (host, port))
    if u.getcode() == 200:
        response = u.readline()
        (sid, hbtimeout, ctimeout, supported) = response.split(":")
        supportedlist = supported.split(",")
        if "websocket" in supportedlist:
            return (sid, hbtimeout, ctimeout)
        else:
            raise TransportException()
    else:
        raise InvalidResponseException()


try:
    (sid, hbtimeout, ctimeout) = handshake(HOSTNAME, PORT) #handshaking according to socket.io spec.
Except Exception as e:
    print e
    sys.exit(1)
ws …
Run Code Online (Sandbox Code Playgroud)

python websocket node.js socket.io

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

将git-rm --cached删除后删除其他用户的工作树文件

我希望停止跟踪文件,但仍然将它们保存在我的工作树中.

我已经聚集了,这git rm --cached FILE将让我这样做.但是,如果其他人撤消此更改,是否会删除本地副本?

git git-rm

17
推荐指数
1
解决办法
3516
查看次数

调用ES6方法时绑定上下文.如何从称为回调的方法中访问对象?

我试图围绕ES6中的类的语法.同时通过Bonnie Eisenman的Learning React Native学习Fabric本土.

this当回调是一个类"方法"时,我遇到了一个关于在回调中访问的问题.我知道this在StackOverflow上已经多次提出了关于回调词法的问题.例如, 如何在回调中访问正确的`this`上下文?.

根据我在网上的研究,我遇到了一个解决方案.但我不确定这是在ES6中这样做的正确方法.

当我尝试以下内容时,我的问题出现了:

class WeatherProject extends Component {
  constructor(props) {
    super(props);
    this.state = {
      zip: ''
    };
  }

  _handleTextChange(event) {
    console.log(event.nativeEvent.text);
    this.setState({zip: event.nativeEvent.text})
  }

  render() {
    return (
      <TextInput
        style={styles.input}
        onSubmitEditing={this._handleTextChange}/>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

(我只是对本书中的示例进行了略微修改,以匹配ES6类语法和导入/导出语法而不是Require.)

如果我这样做,thisin _handleTextChange是未定义的(无法读取未定义的属性'setState').我对此感到惊讶.来自其他OO语言,我正在解释,好像这个方法表现得更像是一个静态方法.

我已经能够通过跳过类方法和使用箭头符号来解决这个问题.onSubmitEditing={event => this.setState({name: event.nativeEvent.text})}.哪个工作正常.我没有遇到任何问题或困惑.

我真的想弄清楚如何调用类方法.经过一番研究后,我通过以下方式成功实现了它的工作:onSubmitEditing={this._handleTextChange.bind(this)}.也许我误解了JavaScript的一个基本方面(我是JS的初学者),但这对我来说似乎完全是疯了.是否真的无法从方法中访问对象的上下文而没有将对象显式绑定到...它自己的方法,在它被调用的位置?

我也尝试添加var self = this;在构造函数中并调用self.setState_handleTextChange.但是,发现不起作用并不是太惊讶.

当它被称为回调时,从其中一个方法中访问对象的正确方法是什么?

javascript ecmascript-6 react-native

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

React hooks: accessing up-to-date state from within a callback

I am using React hooks and trying to read state from within a callback. Every time the callback accesses it, it's back at its default value.

With the following code. The console will keep printing Count is: 0 no matter how many times I click.

function Card(title) {
  const [count, setCount] = React.useState(0)
  const [callbackSetup, setCallbackSetup] = React.useState(false)

  function setupConsoleCallback(callback) {
    console.log("Setting up callback")
    setInterval(callback, 3000)
  }

  function clickHandler() {
    setCount(count+1);
    if (!callbackSetup) {
      setupConsoleCallback(() => {console.log(`Count is: ${count}`)})
      setCallbackSetup(true) …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

7
推荐指数
5
解决办法
116
查看次数

shared_ptr成员变量的多态分配

我最近试图学习如何使用std::shared_ptr.在修改现有代码时,我发现自己在使用成员变量分配时(在初始化列表之外)时感到困惑.

我的旧代码:

Class A {

Base* member_var;

A() {
    this->member_var = new Derived();
}

};
Run Code Online (Sandbox Code Playgroud)

我的新代码:

Class A {

std::shared_ptr<Base> member_var;

A() {
    //Note the shared_ptr is given type Derived, matching the object.
    this->member_var = std::shared_ptr<Derived> (new Derived());
}

};
Run Code Online (Sandbox Code Playgroud)

它是否正确?或者这可能更正确?:

Class A {

std::shared_ptr<Base> member_var;

A() {
    //Note the shared_ptr is of type Base, matching the member type.
    this->member_var = std::shared_ptr<Base> (new Derived());
}

};
Run Code Online (Sandbox Code Playgroud)

这两个陈述有什么区别.

令人担忧的是,我似乎无法找到我在这里尝试做的任何代码示例.我的使用方法是std::shared_ptr错误的吗?


编辑:感谢大家的帮助.我想我引起了一些困惑.为了将来的可读性,我将扩展为什么我选择采用这种方法.我选择用一个简单的代码示例来说明我的问题.在我的实际问题中,我不使用a Class A,实际上我使用的是struct.这个结构的唯一目的是帮助我整齐地抓住各种不同对象的许多实例.我经常最终单独传递(通过引用)每个对象,而不是结构本身,作为函数的参数.此外,当我将整个结构作为参数时,我倾向于通过值传递这个结构.因此我有兴趣制作这些shared_ptr,而不是unique_ptr.我一直在争论改变一切并将所有这些封装在一个类中,比如Class A在我的例子中,并传递了类的实例传递引用对象实例.在这种情况下,我同意所有评论过的人,并且 …

c++ shared-ptr c++11

2
推荐指数
1
解决办法
1960
查看次数

如何在C++中使用条件初始化对象正确获取资源?

我有许多类,我提供了一个Init()函数.鉴于使用此代码的程序员可能忘记调用Init(),或者之前可能调用析构函数Init(),我已经编写了析构函数来检查对象的状态.我觉得这写得不是很好,如果可能的话,想通过初始化和分配构造函数中所需的一切来避免这种情况(Scott Meyers建议也不要使用初始化方法).然而,当使用可选参数/多个构造函数时,我一直在努力寻找一种方法.

当前代码:

class A {
    Init(B* some_other_object);
    Init(B* some_other_object, C* an_optional_argument);
    ...
}

int main(int argc, const char* argv[]) {
    ...
    A a;
    if(somecase)
        a.Init(b1, c1);
    else
        a.Init(b1);
}
Run Code Online (Sandbox Code Playgroud)

期望的代码:

class A {
    explicit A(B* some_other_object);
    A(B* some_other_object, C* an_optional_argument);
    ...
}

int main(int argc, const char* argv[]) {
    ...
    if(somecase)
        A a(b1, c1);
    else
        A a(b1);
}
Run Code Online (Sandbox Code Playgroud)

当然,这里的问题是变量a立即超出范围.所以我求助于分配给堆.

int main(int argc, const char* argv[]) {
    ...
    A* a;
    if(somecase)
        a …
Run Code Online (Sandbox Code Playgroud)

c++ constructor

0
推荐指数
1
解决办法
98
查看次数