0

无法弄清楚如何在协议中实现自定义事件

例如服务器端

client.on('checkin', function (name) { ... });

和客户端

socket.emit('checkin',name);

我目前的想法是根据dataReceived(self, data)函数中接收到的数据来制作 if 条件。一种存储在数据中的标头。

任何建议或文档将不胜感激。谢谢。

4

3 回答 3

2

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.

于 2013-09-23T17:38:33.643 回答
1

您可能不想为此使用裸协议,至少不使用 TCP。 dataReceived每当套接字有数据时调用,发送的数据“块”之间没有自然划分。一种更简单的方法是使用包装协议的类之一,例如 LineReceiver,它实现 dataReceived 并调用lineReceived它收集的一整行数据。

于 2013-09-23T13:51:40.100 回答
1

你为什么不看看其他协议是如何做到的?

例如。我猜 IRCClient 将是一个很好的例子 - http://twistedmatrix.com/trac/browser/tags/releases/twisted-8.2.0/twisted/words/protocols/irc.py#L1707

于 2013-09-23T13:46:35.193 回答