ben*_*ron 3 sockets google-app-engine node.js
我想在GAE上用socket io运行用节点js编写的p2p聊天.
我的应用程序本地工作正常,但我在与我认为的套接字io相关的GAE服务器上运行时收到错误消息.
以下是本地client.html运行时本地的两个相关脚本标记:
<script src="/socket.io/socket.io.js"></script>
<!-- <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script> -->
<script type="text/javascript">
// our socket.io code goes here
var socketio = io.connect("127.0.0.1:1337");
socketio.on("message_to_client", function (data) {
to_history(data['message']);
});
function send_message() {
var msg = [document.getElementById("text1").value, user1, uuid];
socketio.emit("message_to_server", {
message: msg
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
我见过博客/帖子说,对于部署,我需要在SO上允许防火墙规则(现在已经到位).我还尝试将我已部署的应用程序指向静态外部IP(在我的谷歌云控制台中将其静态化后):
var socketio = io.connect('https://104.197.51.XXX')
Run Code Online (Sandbox Code Playgroud)
或者将其指向我的防火墙规则中指定的端口65080(请参阅Google 在此处提供的文档:
var socketio = io.connect('https://104.197.51.XXX:65080')
Run Code Online (Sandbox Code Playgroud)
这些都不起作用.
我有html加载正常和我有的jQuery部分和CSS也正常加载.这只是套接字的东西,我似乎出错了.我需要改变什么?
如果这是有用的,这里是app.yaml:
runtime: nodejs
vm: true
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏.谢谢.
可悲的是,App Engine不支持websockets(尚未).由于以下几个原因,你使用的黑客攻击真的不可靠:
简而言之 - 这不是生产准备.那说了......
https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/appengine/websockets
该链接将向您显示一个工作示例以及如何设置它的说明.
而不是 - 我建议使用pubnub:https://www.pubnub.com/docs/nodejs-javascript/pubnub-javascript-sdk
它有一个非常好的API,并且比你可以与App Engine一起破解的任何东西都更可靠(你知道,直到我们修复它).你可以看到我在这里做的一些例子:
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
1877 次 |
| 最近记录: |