簡體   English   中英

Node.js和Web套接字

[英]Node.js and Web Sockets

我已經運行了一個node.js服務器,當我導航到該URL時,可以顯示“ hello world”或Twitter提要。

問題是我無法在node.js實例與另一頁的客戶端上定義的websocket之間發生任何通信。

有人有什么想法嗎?

非常感謝。

您是否在某些代理后面運行node.js? 某些代理(例如ngnix)不支持http 1.1,並且websockets必須使用http 1.1。

在此處查找與Node.JS兼容的WebSocket庫。 Node.JS不提供開箱即用的WebSocket支持,您需要安裝其他庫。 Socket.io就足夠了。

好吧,所以我開始工作了(我認為)

同樣,客戶端代碼:

<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套接字警報。

有任何想法嗎?

謝謝,丹

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM