gpt4 book ai didi

Node.js Websockets 套接字.IO

转载 作者:搜寻专家 更新时间:2023-10-31 22:46:36 25 4
gpt4 key购买 nike

我无法触发客户端事件,请查看代码/解释:

好的,所以我开始工作了(我想)

客户端代码:

<script src="./Socket.IO/socket.io.js"></script>
<script>
io.setPath('./Socket.IO/');

var socket = new io.Socket('jayz.danstanhope.webfactional.com', { 'port': 80 });

socket.on('connect', function () {
alert('connect');
});
socket.on('message', function (msg) {
alert('message' + msg);
});
socket.on('close', function () {
alert('close');
});
socket.on('disconnect', function () {
alert('disconnect');
});
socket.connect();

</script>

服务器端代码:

var sys = require("sys")
, fs = require("fs")
, path = require("path")
, http = require("http");
var io = require('/home/danstanhope/webapps/htdocs/Socket.IO-node');

var server = http.createServer(function (req, res) {
//your normal server code
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write('Hello world');
res.end();
});

server.listen(26970);
server = io.listen(server);
server.on('connection', function(client){
sys.log('client connected');
});

当我在 Chrome 中刷新页面时,我可以看到正在用 Shell 写入日志。

这是我看到的:

danstanhope@web146 htdocs]$ node server.js
9 Aug 19:19:37 - socket.io ready - accepting connections
9 Aug 19:19:40 - Initializing client with transport "websocket"
9 Aug 19:19:40 - Client 21789167495444417 connected
9 Aug 19:19:40 - client connected
9 Aug 19:19:40 - Client 21789167495444417 disconnected

现在唯一的问题是触发任何这些 javascript 套接字警报。

另外,这个错误出现在 Chrome 中:

Bad Upgrade header: Server: nginx

Date: Wed, 11 Aug 2010 23:06:06 GMT

Transfer-Encoding: chunked

Connection: keep-alive

Upgrade: WebSocket

关于如何修复“坏 header ”有什么想法吗?

谢谢丹

最佳答案

您可以使用 nginx 代理标准 HTML 请求,但不能代理 websockets 或 flashsockets 连接,因为 nginx 还不能通过代理转发非 HTTP 1.0 流量。所以 websockets 是行不通的,Flash 将无法发送它的跨域策略,因为它看起来有点像这样:

<policy-file-request/>\x00

nginx 愉快地抛出 HTTP 400 错误。

为了让它工作,您必须连接客户端以端口您的 node.js 应用正在监听:

<script src="./Socket.IO/socket.io.js"></script>
<script>
io.setPath('./Socket.IO/');

var socket = new io.Socket('jayz.danstanhope.webfactional.com', { 'port': 26970 });

socket.on('connect', function () {
alert('connect');
});
socket.on('message', function (msg) {
alert('message' + msg);
});
socket.on('close', function () {
alert('close');
});
socket.on('disconnect', function () {
alert('disconnect');
});
socket.connect();

</script>

关于Node.js Websockets 套接字.IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com