0

我有一个 node.js 服务器正在运行,当我导航到 url 时,我可以让它显示“hello world”或 twitter 提要。

问题是我无法在 node.js 实例和另一个页面的客户端上定义的 websocket 之间进行任何通信。

有没有人有任何想法?

非常感谢。

4

3 回答 3

1

你在一些代理后面运行 node.js 吗?一些代理(例如 ngnix)不支持 http 1.1,并且 websockets 需要 http 1.1。

于 2010-08-06T10:56:49.817 回答
0

Okay, so I got this working(I think)

Again, Client-side code:

<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>

Server-side code:

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');
});

When I refresh the page in Chrome I can see logs being written in Shell.

Here's what I see:

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

The only issue now is getting any of those javascript socket alerts to fire.

Any ideas?

Thanks, Dan

于 2010-08-10T00:24:11.140 回答
0

在此处查找与 Node.JS 兼容的 WebSocket 库。Node.JS 不提供开箱即用的 WebSocket 支持,您需要安装额外的库。Socket.io 就足够了。

于 2010-08-04T13:05:04.157 回答