4

我已经写了一个socket.io服务器,我正在用mocha它来测试它。但是我第二次无法连接到服务器。

这是我的代码,它是由咖啡脚本编写的。

服务器:

server = require('http').Server()
io = require('socket.io').listen(server)

io.on 'connection', (socket) ->
  console.log socket.id

server.listen(3000)

测试:

chai = require 'chai'
io = require 'socket.io-client'

should = chai.should()

describe 'Socket', ()->

  url = 'http://0.0.0.0:3000'

  it 'should be connected', (done) ->
    client = io.connect(url)
    client.on 'connect', (data) ->
      console.log(data)
      client.socket.connected.should.equal(true)
      client.disconnect()
      done()


describe 'User', ()->

  url = 'http://0.0.0.0:3000'

  it 'should be connected', (done) ->
    client = io.connect(url)
    client.on 'connect', (data) ->
      console.log(data)
      client.socket.connected.should.equal(true)
      client.disconnect()
      done()

服务器输出:

   info  - socket.io started
   debug - client authorized
   info  - handshake authorized b_2h4dCr-YfD-7-Iw9Hl
   debug - setting request GET /socket.io/1/websocket/b_2h4dCr-YfD-7-Iw9Hl
   debug - set heartbeat interval for client b_2h4dCr-YfD-7-Iw9Hl
   debug - client authorized for 
   debug - websocket writing 1::
b_2h4dCr-YfD-7-Iw9Hl
   debug - got disconnection packet
   info  - transport end by forced client disconnection
   debug - websocket writing 0::
   info  - transport end (booted)
   debug - set close timeout for client b_2h4dCr-YfD-7-Iw9Hl
   debug - cleared close timeout for client b_2h4dCr-YfD-7-Iw9Hl
   debug - cleared heartbeat interval for client b_2h4dCr-YfD-7-Iw9Hl
   debug - discarding transport

摩卡输出:

  Socket
    ◦ should be connected: undefined
    ✓ should be connected (75ms)

  User
    1) should be connected


  1 passing (2 seconds)
  1 failing

  1) User should be connected:
     Error: timeout of 2000ms exceeded
      at null.<anonymous> (/home/wangbin/webapp/chat_server/node_modules/mocha/lib/runnable.js:165:14)
      at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
4

1 回答 1

9

当您想创建新会话时 - 为 .connect 方法设置“强制新连接”选项

io.connect(socketAddress,{'force new connection': true});
于 2013-08-14T05:15:56.810 回答