扫码关注官方订阅号
目前想做一个聊天系统,服务端得要公网ip,所以想找一些网上的空间来托管我的服务端,但是找了sae,bae之类,无论哪种语言(java,node.js,python等)都不支持socket监听。我想用socket来搭建一个TCP的服务端啊,怎么才可以搭建?
闭关修行中......
感性的来看,云平台或虚拟主机空间,基本都不会提供主动运行守护进程的功能。
你的需求恐怕需要VPS。掏钱吧。
只要是IaaS这类就可以,例如AWS的EC2
美国国家标准和技术研究院的云计算定义中明确了三种服务模式: 软件即服务(SaaS):消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构。是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组账号密码。例如:Microsoft CRM与Salesforce.com 平台即服务(PaaS):消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。例如:Google App Engine。 基础架构即服务(IaaS):消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。例如:Amazon AWS、Rackspace。
美国国家标准和技术研究院的云计算定义中明确了三种服务模式:
软件即服务(SaaS):消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构。是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组账号密码。例如:Microsoft CRM与Salesforce.com
平台即服务(PaaS):消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。例如:Google App Engine。
基础架构即服务(IaaS):消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。例如:Amazon AWS、Rackspace。
来源: 1、 http://zh.wikipedia.org/wiki/%E9%9B%B2%E7%AB%AF%E9%81%8B%E7%AE%97
想做聊天系统是吧,用底层的socket开发或许有点麻烦,你可以尝试socket.io,并在BAE、SAE上搭建。 这个东西似乎非常适合做聊天软件。
服务端
var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });
客户端
<script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect('http://localhost'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script>
在客户端里,他会采取以下方式和服务器连接:
所以浏览器兼容方面题主应该不比太操心,官方表示连Internet Explorer 5.5都支持。
SAE最近正在内测Channel功能,就是实现这个的。你可以去问问,能不能拿到邀请码。
BAE、SAE那种是分布式的环境,并且都是内网运行,不可以对外开放端口的。买云计算主机去吧。
其实也不是不行的,bae的可以的。 不过不是直接用的socket而是socks
云环境(Python)中的Socket服务使用了PHP官方sockets扩展,可通过代理访问外部网络,无接口变更,支持TCP,暂不支持UDP及监听。详细请参考 官方文档。 socks模块完全兼容原生socket模块,仅创建实例接口不同(socks.socksocket),其余接口均与socket模块相同,使用方法也一致。
def app(environ, start_response): status = '200 OK' headers = [('Content-type', 'text/html')] start_response(status, headers) import socks, socket s = socks.socksocket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("www.baidu.com",80)) s.send("GET / HTTP/1.1\r\n\r\n") return s.recv(256) from bae.core.wsgi import WSGIApplication application = WSGIApplication(app)
出处:http://developer.baidu.com/wiki/index.php?title=docs/cplat/rt/python/socket
楼上的观点可以采纳采纳!
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
感性的来看,云平台或虚拟主机空间,基本都不会提供主动运行守护进程的功能。
你的需求恐怕需要VPS。掏钱吧。
只要是IaaS这类就可以,例如AWS的EC2
来源: 1、 http://zh.wikipedia.org/wiki/%E9%9B%B2%E7%AB%AF%E9%81%8B%E7%AE%97
想做聊天系统是吧,用底层的socket开发或许有点麻烦,你可以尝试socket.io,并在BAE、SAE上搭建。
这个东西似乎非常适合做聊天软件。
服务端
客户端
在客户端里,他会采取以下方式和服务器连接:
所以浏览器兼容方面题主应该不比太操心,官方表示连Internet Explorer 5.5都支持。
SAE最近正在内测Channel功能,就是实现这个的。你可以去问问,能不能拿到邀请码。
BAE、SAE那种是分布式的环境,并且都是内网运行,不可以对外开放端口的。买云计算主机去吧。
其实也不是不行的,bae的可以的。
不过不是直接用的socket而是socks
出处:
http://developer.baidu.com/wiki/index.php?title=docs/cplat/rt/python/socket
Appfog
楼上的观点可以采纳采纳!