我正在做一个学校项目。目标是通过TCP套接字将Windows Phone 8(WP8)与服务器(使用基于express.js的sails.js框架的node.js)链接起来。
我找到了一个很棒的C#部分教程(WP8),我正在使用Windows 8虚拟机,但这不是问题。 (只是放慢一个角落-_-)
根据教程,我“实现”WP部分。我还使用socket.io实现了node.js服务器。
这里是WP8教程:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202858(v=vs.105).aspx
这里是我的WP8应用程序(8.0):(基于教程但是自定义)
SocketClient:http://pastebin.com/8ncad4EV
MainPage.cs:http://pastebin.com/5VAU96JV
Mainpage.xaml.cs:http://pastebin.com/hhvmQvPS
这里是application + node.js服务器端源代码的屏幕截图:
在左侧屏幕上,您可以看到创建“侦听器”的服务器端代码。在右边的VM与WP8和模拟器。 如您所见,我可以使用套接字连接到我的服务器。但我没有得到任何回应。
关于服务器日志,当我运行WP8应用程序时没有创建日志,它的写入比连接成功但没有关于它的服务器上的日志。
您可以直接在这里看到网站:137.135.176.144:1337如果您愿意,可以使用javascript控制台进行运行测试,例如:
socket.emit('disconnection', function(res){console.log(res);});
您将看到服务器关于您已断开连接的响应(它只是一个日志,而不是真实的),我将在我自己的控制台,服务器端获取它。
但是当我尝试连接WP8或netduino时(因为我必须使用带有node.js的套接字连接netuido和WP8),它们是相同的。连接期间没有错误但没有响应。
所以,我在这里,因为我对于node.js很不满意,我尝试了很多东西,但仍然是一样的。你可以帮帮我吗?谢谢。
我正在尝试别的东西。另一个代码客户端(WP8)。 因为我正在运行同步请求,所以我现在尝试运行异步,因为node.js服务器是asynchrone:
您可以创建一个新项目,添加此类并在“main”函数中调用它。
输出:
Application proccessing...
Application started
Operation processing: Connect
Connect: Successful connection etablished to Unspecified/137.135.176.144:1337
Operation processing: Send
Operation processing: Receive
Data received: connection (10)
收到的日期等于我自己发送的数据(你可以看到第70行)。我没有从服务器获取数据(或者我做错了),我在服务器控制台上看不到任何连接。
正如您所看到的,我不确定要调用好的URL,但如果我在IP地址之前写了 http:// ,程序会抛出一个SocketException:“没有这样的主人已知“
An exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll and wasn't handled before a managed/native boundary
An exception of type 'System.Net.Sockets.SocketException' occurred in System.Net.ni.dll and wasn't handled before a managed/native boundary
An exception of type 'System.Net.Sockets.SocketException' occurred in System.Net.ni.dll and wasn't handled before a managed/native boundary
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in SocketsTest.DLL
我不明白为什么它会在 http:// 中引发错误。 源代码服务器端与之前相同。
你可以帮帮我吗?我在这里很丢失。 谢谢。