2015-06-04 115 views
0

我正在尝试使用打字稿,路由和jade来重新创建this教程。我的代码编译并按预期运行,jade文件被正确地服务,但是在客户端套接字和服务器端套接字之间似乎没有连接。作为参考,从教程中的代码设置是这样的:Typescript客户端套接字未与服务器连接

JavaScript文件:

var io = require('socket.io')(http); 

io.on('connection', function(socket){ 
    console.log('a user connected'); 
}); 

HTML文件:

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io(); 
</script> 

和我看起来是这样的:

服务器端:

客户端:

declare var io: SocketIOClientStatic; 
var socket = io(); 

我搬到了相关的服务器和客户端的代码到不同的位置,并尝试了一些不同的东西。我为客户端使用了常规JavaScript(与教程完全一样),我将脚本移动到了jade文件中,并且我已经将app.ts和index.ts(其中app.ts路线)。我无法从连接事件中获取记录的消息。

回答

0

你的JavaScript(一点点改写):

var io = require('socket.io'); 
var server = io(http); 

server.on(...); 

您的打字稿:

import io = require('socket.io'); 
var server: SocketIO.Server = io(); 
           ^^ where is `http`? 
server.on(...) 
+0

我已经添加了HTTP的参数,但问题并没有改变。 –

+0

@NicolasPeckman你如何在TS中初始化'http'? – robertklep

+0

我用'import http = require(“http”);'那看起来就像我唯一的另一行'http'。我是否缺少另一个初始化步骤? –