Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

socket 和 http(s) 代理性能分析 #78

Open
leoner opened this issue Jul 10, 2013 · 7 comments
Open

socket 和 http(s) 代理性能分析 #78

leoner opened this issue Jul 10, 2013 · 7 comments

Comments

@leoner
Copy link
Contributor

leoner commented Jul 10, 2013

从两个维度进行分析

请求方式

  • 使用 socket 的方式,所有的数据都从这一个通道进行传输
  • 使用 http 的方式,每个请求都建立一个连接

socket 模块的选择

如果没有意外,还是倾向于用 socket.io

@leoner
Copy link
Contributor Author

leoner commented Jul 10, 2013

请求方式分析用例:

  1. 客户端准备10个大文件
  2. 服务器端分别通过 http 和 socket 的方式获取所有数据
  3. 记录各自消耗的时间

@leoner
Copy link
Contributor Author

leoner commented Jul 11, 2013

b639f5201b0a14c650df9c2632d396d6

目前 http 的方式,完胜.
后续在看看 socket.io 是否有想关参数设置, 还有其他 socket 的方式.

@leoner
Copy link
Contributor Author

leoner commented Jul 11, 2013

32ff04f8335b1e5144bf67827a378c43

本地测试结果, tcp-over-json 和 socket.io 相差不是很多, 但是稍微好点呀.

@leoner
Copy link
Contributor Author

leoner commented Jul 11, 2013

看来 socket 这种方式还是只适合小数据的传输, 比如聊天室啥的. 对于这种大数据的传输, 还是不太适合啊.

@lepture
Copy link
Contributor

lepture commented Jul 12, 2013

@leoner 太不公平了,你要和 http 对比就要用 net 库呀。

var http = require('http')
var net = require('net')

@leoner
Copy link
Contributor Author

leoner commented Jul 12, 2013

因为不是简单的传输数据, 需要对传输数据识别,分组啥的, 如果用 net 的话, 还是需要做好多处理, 所以首先用已有的模块来测试下. json-over-tcp 看来已经是很精简了. 下一步在看看是否还有优化的余地.

@fool2fish
Copy link
Contributor

见:totorojs/totoro-server@5046772

@fool2fish fool2fish removed this from the 0.5.0 milestone Feb 25, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants