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)函数可能是你正在寻找的东西。