NetworkStream写入()与事件名称

我有一个用C#编写的简单的TCP服务器,以指定的时间间隔ping数据,并接收到我有NodeJS应用程序的数据。

我目前正在从NetworkStream发送数据,如下所示:

 private NetworkStream nwStream; nwStream = clientMachine.GetStream(); nwStream.Write(buffer, 0, buffer.Length); // Inside a loop 

并在NodeJS中接收它,如:

client.on('data', (data) => {

除了我的C#TCP服务器的data之外,还有什么办法可以发出不同的事件吗? 使用Socket.io我可以socket.emit('customEvent', someData)并接收它像socket.on('customEvent', receivedData)但我不确定是否可以在C#中实现这一点。

我没有使用Socket.io,上面只是我想实现的行为的一个例子。

如果你在两端使用原始套接字,你只需要devise自己的协议,在每个逻辑框架中embedded一个名字…… TCP套接字本身没有任何这样的机制,也没有原始数据包。

一个典型/简单的做法可能是这样的:

 {Event name, UTF8}\r\n{length, 4 bytes little endian integer}{payload, length bytes} 

如果您的事件名称可能包含换行符/换行符,那么您也需要使用有效负载长度/有效负载方法。

Socket.IO有自己的networking协议在这里指定。 'socket.io-parser'中的encodeAsString(obj)函数可能是你正在寻找的东西。