无法弄清楚如何在协议中实现自定义事件
例如服务器端
client.on('checkin', function (name) { ... });
和客户端
socket.emit('checkin',name);
我目前的想法是根据dataReceived(self, data)
函数中接收到的数据来制作 if 条件。一种存储在数据中的标头。
任何建议或文档将不胜感激。谢谢。
When you say "custom events" here, you're talking about implementing a wire protocol. The "events" you're talking about are messages within that protocol, not things that you can do on any arbitrary socket. I don't know what protocol socket.io
speaks. If you're writing the client (and it's not a web browser) then you might want to use AMP, which will give you an extensible way to do client/server communication.
您可能不想为此使用裸协议,至少不使用 TCP。 dataReceived
每当套接字有数据时调用,发送的数据“块”之间没有自然划分。一种更简单的方法是使用包装协议的类之一,例如 LineReceiver,它实现 dataReceived 并调用lineReceived
它收集的一整行数据。
你为什么不看看其他协议是如何做到的?
例如。我猜 IRCClient 将是一个很好的例子 - http://twistedmatrix.com/trac/browser/tags/releases/twisted-8.2.0/twisted/words/protocols/irc.py#L1707