我们公司的网页游戏的聊天系统用socket做,以前没用socket做过项目,比如ID是1的玩家要在世界频道里说一句话,那有3个数据(ID,频道,话),要把这么3个数据传输到服务器端,我的想法是先把数据流转换成字符串比如"<e a=\"1\" b=\"1\" c=\"说话的内容\" />",然后把他转换成xelement类型,然后再解析,这样的思路可以吗,好像XElement.Parse()的效率挺慢的
如果要效率搞,当然是二进制效率最高。我的Hubble.net 开源项目中有封装好的TCP 类,你直接抄过去用就可以了,速度很快。
http://hubbledotnet.codeplex.com/
在 hubble.framework/Net 下
具体看对性能上的要求,你当然可以不采用XML,而自己定义协议,可能这样的字符串最短,但要考虑开发效率及扩展性。
一般的做法是,采用XML定义,先压缩,后传输,到另一端先解压,再解析
我们通常的做法是:,采用XML定义,先压缩,后传输,到另一端先解压,再解析
另外注意文件传输采用二进制方式。
建议用JSON定义 {name:"奥巴马",channelId:1,content:"我真是个怀具"}
呵呵,我喜欢JSON