9

我想用javascript编写一个web socket客户端,用ruby编写一个web socket服务器。

我该从哪里开始?是否有任何现有的图书馆可以减少我的工作?

我迷路了,很困惑谷歌搜索。请提供任何从哪里开始的链接,因为他们对 ruby​​、javascript、ruby 中的基本网络有了解。

4

2 回答 2

3

我目前使用em-websocket

EventMachine.run {

    EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 8080) do |ws|
        ws.onopen {
          puts "WebSocket connection open"

          # publish message to the client
          ws.send "Hello Client"
        }

        ws.onclose { puts "Connection closed" }
        ws.onmessage { |msg|
          puts "Recieved message: #{msg}"
          ws.send "Pong: #{msg}"
        }
    end
}

有关更多信息,请参阅有关ruby​​ 和 websocket的另一个线程:

于 2012-06-12T09:20:28.077 回答
-1

正如@intellidiot 所说,node.js可能是您正在寻找的库。

他们首页的代码示例将告诉您是否值得深入研究:

 /* 
  *     Here is an example of a simple TCP server 
  *     which listens on port 1337 
  *     and echoes whatever you send it: 
  */

var net = require('net');

var server = net.createServer(function (socket) {
  socket.write('Echo server\r\n');
  socket.pipe(socket);
});

server.listen(1337, '127.0.0.1');

查看他们的网站和文档。您也可以在此处查找


编辑 :

当然,此示例演示了服务器功能,但您可以从中推断出涉及相同类型对象的客户端功能......

这是来自socket.io-client README的代码示例(socket.io-client是一个 node.js 包):

/*
 *    And now for the requested CLIENT code sample ;-)
 */

var socket = io.connect('http://domain.com');
socket.on('connect', function () {
    // socket connected
});
socket.on('custom event', function () {
    // server emitted a custom event
});
socket.on('disconnect', function () {
    // socket disconnected
});
socket.send('hi there');

希望这有助于澄清。抱歉,我的回答并不像一开始那么简单。

于 2012-06-12T08:45:18.397 回答